[英]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.