角度更新所有控制器中的全局变量

时间:2014-11-14 07:36:47

标签: javascript angularjs

我在Angular.js框架中遇到全局变量问题,有些控制器在我的应用程序中处理对象数组。因此,当我制作' GET'请求服务器获取新数据。

我尝试使用服务,但数组仅在启动get请求的控制器中更改。

我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

那么您想知道如何跨控制器共享全局变量吗?

您可以使用$ rootScope:

https://docs.angularjs.org/api/ng/service/ $ rootScope

所以你只需使用$ rootScope.yourArrayOfObjs = ....

另请参阅ng

中的不同范围

https://docs.angularjs.org/guide/scope


更新: 您当然也可以使用服务执行此操作,但如果服务的唯一目的是提供全局变量,则不能。请参阅angular FAQ上一个问题:

https://docs.angularjs.org/misc/faq

答案 1 :(得分:0)

这是一个常见问题,您需要将数据存储在工厂中的对象中(而不是作为对象),例如:

app.factory('Factory', function() {
    var Factory;
    Factory.data = {}
    Factory.data.sharedAccrossControllers = [1,2,3];
    return Factory;
});