在AngularJS中,您可以将数据存储在$ rootScope中,还是创建一个值-Service? 它们都只能通过依赖注入来访问 - 那么区别在哪里? 我什么时候应该使用$ rootScope和值-Service?
答案 0 :(得分:0)
$rootScope
是根scope
对象,它是所有其他scope
继承的父对象。将属性添加到$rootScope
时,该属性可供所有后代$scope
对象使用。即使未将$rootScope
注入控制器,也会出现这些属性,但为了以编程方式修改属性,必须进行注入。此外,由于JavaScript prototype inheritance规则,特定控制器可能隐藏 $rootScope
值。这使$rootScope
成为伪全局,并且可能不安全。但是,由于每个scope
都是$rootScope
的后代,$rootScope
是$broadcast
之类的理想选择。
Value
服务是一个简单的可注射单例值。除非注入,否则从不可用。 Value
不打算直接修改,但在Angular 1.x中可能。 Value
也可以拦截Decorator
。