AngularJS中的$ rootScope和value-service有什么区别?

时间:2016-11-06 13:56:43

标签: angularjs

在AngularJS中,您可以将数据存储在$ rootScope中,还是创建一个值-Service? 它们都只能通过依赖注入来访问 - 那么区别在哪里? 我什么时候应该使用$ rootScope和值-Service?

1 个答案:

答案 0 :(得分:0)

$rootScope是根scope对象,它是所有其他scope继承的父对象。将属性添加到$rootScope时,该属性可供所有后代$scope对象使用。即使未将$rootScope注入控制器,也会出现这些属性,但为了以编程方式修改属性,必须进行注入。此外,由于JavaScript prototype inheritance规则,特定控制器可能隐藏 $rootScope值。这使$rootScope成为伪全局,并且可能不安全。但是,由于每个scope都是$rootScope的后代,$rootScope$broadcast之类的理想选择。

Value服务是一个简单的可注射单例值。除非注入,否则从不可用。 Value不打算直接修改,但在Angular 1.x中可能Value也可以拦截Decorator