我发誓我以前做过这件事,但是我在这里碰到了我的头,无法弄清楚出了什么问题。我的控制器是不是对服务进行更新,还是每个控制器init都重置服务?
我使用默认值加载我的服务。
angular.module('app')
.service('Config', function () {
this.name = 'John Doe';
});
在我的控制器中,我致电该服务。
angular.module('app')
.controller('TestCtrl', function (Config) {
var self = this;
self.name = Config.name;
});
我的观点如下所示。服务值和控制器值(相同)似乎在范围内更新,但就像我说的那样,我失去了路线变更的新价值。有任何想法吗!!这太糟糕了。
<input type="text" ng-model="test.name">
答案 0 :(得分:1)
考虑一下
var a = { name: 'foo' };
var b = { name: a.name };
现在,b.name
也像你想象的那样“foo”。现在,如果我执行
b.name = 'bar';
现在,b.name
是“bar”,但a.name
仍然是“foo”。
如果您想维持服务中的价值,则必须在ng-model
中使用该值。
.controller('TestCtrl', function(Config) {
this.config = Config;
});
和
<input type="text" ng-model="test.config.name">