在以下引用的AngularJS
FAQ中解决了这个问题:
有时,有些数据要对整个应用程序进行全局处理。对于这些,您 可以 像其他作用域一样 注入$ rootScope
并在其上设置值。由于作用域是从根作用域继承而来的,因此这些值将可用于附加到ng-show之类的指令的表达式,就像本地$ scope上的值一样。
似乎团队确实鼓励使用
$rootScope这种方式,但要注意以下几点:
当然,全局状态很糟糕,您应该谨慎使用$ rootScope,就像(希望)使用任何语言的全局变量一样。特别是,不要将其用于代码,而仅用于数据。如果您想在$
rootScope上放置一个函数,最好总是将其放在可以在需要的地方注入并且更容易测试的服务中。相反,请勿创建仅在生命中唯一目的是存储和返回数据位的服务。
这不会给
$digest周期带来太大的负担(它实现了基本的脏检查以测试数据突变),而且这并不是一种奇怪的处理方式。
编辑:
有关性能的更多详细信息,请参见Misko(AngularJS开发人员)的关于SO的答案:数据绑定在AngularJS中如何工作? 特别注意有关性能的部分。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)