簡體   English   中英

將$ scope變量值傳遞給工廠變量/函數

[英]Passing $scope variable value to a factory variable/function

我需要將$ scope變量的值從我的角度控制器傳遞給我的角度工廠,在此我將該值進一步用於其他計算。

控制器:

angular.module('myApp').controller('MyController',['$scope', function($scope)
{
    $scope.selectedValue = function(value)
   {
      $scope.valueToSend = value + 1000;
   }
}]);

事實:

angular.module('myApp').factory("Factory", ["$q","$localStorage", function(q, $localStorage)
{
   var functionToGetValue = function()
   {
    return value;
   }
}
var x = { .... }
return x;
}]);

我控制器中的“值”只是一個選中的單選按鈕。 在我的工廠內,變量x具有其他函數,這些函數調用我的工廠函數functionToGetValue

有什么方法可以將$ scope.valueToSend傳遞給我的工廠,以便可以在自己那里進一步使用它?

在工廠中有一個setter / getter方法,您可以使用該方法設置新值,並在要重用它時,使用相同的方法來獲取它,如下所示:

angular.module('myApp').factory("Factory", ["$q","$localStorage", 

function(q, $localStorage)
{ 
   this.value = "";
   return {
    inputValue : function (value) {
       if(value)
         this.value = value;
       else
         return value;
    }   
  }
}
var x = { .... }
return x;
}]);

現在,從您的控制器,

angular.module('myApp').controller('MyController',['$scope', 'Factory'

function($scope, factory)
{
    $scope.selectedValue = function(value)
     {
      $scope.valueToSend = value + 1000;
       factory.inputValue($scope.valueToSend); // this will set the new value in the factory.
     }

console.log(factory.inputValue()) // this will get the value from the factory.

}]);
angular.module('myApp').factory("Factory", ["$q","$localStorage", function(q, $localStorage)
{
   var value;
   var x = {
     setValue = function(val) {
         value = val;
     };
     functionToGetValue = function()
     {
        return value;
     }
   }
   return x;
}]);

像上面的代碼一樣創建工廠,並在控制器中使用該工廠。 使用Factory.setValue(valueToPass)Factory.functionToGetValue()來獲取傳回值的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM