【发布时间】:2015-01-20 10:05:11
【问题描述】:
我有一个服务方法,它会改变一个布尔变量的值(false 是默认值)并返回给控制器。 通过单击按钮调用此服务方法。
考虑一下,我点击了这个按钮,现在变量值为真。 现在,我正在从另一个控制器访问相同的服务方法,但它是错误的.. 为什么?
怎么了?
第一个控制器,
.controller('myController1',....
$scope.value = false;
$scope.buttonClick = function(){
$scope.value = myService.setValue(value);
}
第二个控制器,
.controller('myController2',.....
$scope.value = myService.getValue();
服务,
angular.module('myModule', [])
.service('myService', ['OtherTypes',
function (OtherTypes) {
var myServiceVariable = false;
return {
setValue: function (value) {
myServiceVariable = !value;
return (myServiceVariable);
},
getValue: function () {
return myServiceVariable;
}
}
}
]);
【问题讨论】:
-
是的,角度服务是单例的。你的代码一定有问题。粘贴一些代码。:)
-
你是在使用DI获取控制器中的服务吗?
-
是的,正在向控制器注入服务。我已经更新了我的问题..请再次参考。
-
myController2 是否与 myController1 同时初始化?
-
不...这将在controller1之后初始化。
标签: angularjs