我在控制器中看到$ scope有$ root,这是什么?与可以注入控制器的$ rootScope有何不同?
$rootScope
var指向所有作用域的父级,可以在任何地方注入。所有其他范围是的子级$rootScope
。它们是通过的$new
方法创建的,$rootScope
因此每个范围都继承自$rootScope
。
在Scope
构造函数的定义中的角度源中有一行:
function Scope() {
this.$id = nextUid();
...
this['this'] = this.$root = this;
...
似乎$root
var只是this
创建的第一个作用域- 的占位符$rootScope
。
接下来是这段代码在$new
方法:
$new: function(isolate) {
...
if (isolate) {
child = new Scope();
child.$root = this.$root;
...
return child;
因此$root
,每个作用域子对象的var $rootScope
都是对的引用$rootScope
。这些孩子中的所有孩子都会得到相同的参考$rootScope
我认为最好使用$rootScope
via依赖项注入,因为它是一种显式且总体上更常用的引用$rootScope
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句