gpt4 book ai didi

javascript - 通过服务在 Controller 之间共享变量

转载 作者:行者123 更新时间:2023-11-28 20:29:39 25 4
gpt4 key购买 nike

Here is my plunker:

据我了解,由于共享的服务变量是一个对象,因此 Controller 1 加载到服务的对象应该可以被 Controller 2 清楚地看到,而不需要 $watches 或监听器或任何东西。我错了吗?我怎样才能让它发挥作用?

最佳答案

我已经修复了你的问题:http://plnkr.co/edit/JNBmsjzdj6SHOSK4kPNh .

您的服务有一个对象,您可以将其放入 $scope ($scope.item) 上的模型中。到目前为止,一切都很好。但是,您随后使用新的对象引用 ($scope.thisObject) 更新服务对象,以便 $scope.item 和 myService.myObject 现在引用完全不同的对象。

您应该只更新对象属性。有关详细信息,请参阅 plunk。

所以不要写:

app.factory('myService',function(){
var service = {
myObject:{},
changeProperty: function(newProperty){
this.myObject = newProperty;
}
};
return service;
});

您应该使用:

app.factory('myService',function(){
var service = {
myObject:{},
changeProperty: function(newProperty){
this.myObject.text = newProperty.text;
}
};
return service;
});

希望有帮助。

关于javascript - 通过服务在 Controller 之间共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16678510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com