我在Angular.js框架中遇到全局变量问题,有些控制器在我的应用程序中处理对象数组。因此,当我制作' GET'请求服务器获取新数据。
我尝试使用服务,但数组仅在启动get请求的控制器中更改。
我怎么能这样做?
答案 0 :(得分:1)
那么您想知道如何跨控制器共享全局变量吗?
您可以使用$ rootScope:
https://docs.angularjs.org/api/ng/service/ $ rootScope
所以你只需使用$ rootScope.yourArrayOfObjs = ....
另请参阅ng
中的不同范围https://docs.angularjs.org/guide/scope
更新: 您当然也可以使用服务执行此操作,但如果服务的唯一目的是提供全局变量,则不能。请参阅angular FAQ上一个问题:
答案 1 :(得分:0)
这是一个常见问题,您需要将数据存储在工厂中的对象中(而不是作为对象),例如:
app.factory('Factory', function() {
var Factory;
Factory.data = {}
Factory.data.sharedAccrossControllers = [1,2,3];
return Factory;
});