我需要将$ scope变量的值从我的角度控制器传递到我的角度工厂,此值进一步用于进行其他计算。
控制器:
angular.module('myApp').controller('MyController',['$scope', function($scope)
{
$scope.selectedValue = function(value)
{
$scope.valueToSend = value + 1000;
}
}]);
Factroy:
angular.module('myApp').factory("Factory", ["$q","$localStorage", function(q, $localStorage)
{
var functionToGetValue = function()
{
return value;
}
}
var x = { .... }
return x;
}]);
'价值'在我的控制器中只是一个被选中的单选按钮。
在我的工厂中,变量x具有调用我的工厂函数functionToGetValue
的其他函数。
有没有什么方法可以将$ scope.valueToSend传递给我的工厂,以便我可以在那里进一步使用它?
答案 0 :(得分:2)
在您的工厂中有一个setter / getter方法,您可以使用该方法设置新值,当您想要重复使用它时,使用相同的方法来获取它,如下所示:
not called from derived B
called from derived B
现在,从您的控制器,
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;
}]);
答案 1 :(得分:1)
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()
来获取值传递值。