当前位置: 首页 > 面试题库 >

$ scope。$ root和$ rootScope有什么区别?

熊俊人
2023-03-14
问题内容

我在控制器中看到$ scope有$ root,这是什么?与可以注入控制器的$ rootScope有何不同?


问题答案:

$rootScopevar指向所有作用域的父级,可以在任何地方注入。所有其他范围是的子级$rootScope。它们是通过的$new方法创建的,$rootScope因此每个范围都继承自$rootScope

Scope构造函数
的定义中的角度源中有一行:

 function Scope() {
   this.$id = nextUid();
 ...
 this['this'] = this.$root =  this;
 ...

似乎$rootvar只是this创建的第一个作用域- 的占位符$rootScope

接下来是这段代码在$new方法:

  $new: function(isolate) {
      ...

    if (isolate) {
      child = new Scope();
      child.$root = this.$root;
   ...
   return child;

因此$root,每个作用域子对象的var
$rootScope都是对的引用$rootScope。这些孩子中的所有孩子都会得到相同的参考$rootScope

我认为最好使用$rootScopevia依赖项注入,因为它是一种显式且总体上更常用的引用$rootScope



 类似资料:
  • 本文向大家介绍AnjularJS中$scope和$rootScope的区别小结,包括了AnjularJS中$scope和$rootScope的区别小结的使用技巧和注意事项,需要的朋友参考一下 一句话总结:      $rootScope针对全局的作用域生效      $scope只针对当前的controller作用域生效 用下面的例子来证明上述的说法: 定义一个模块名为myApp 创建oneCon

  • 我在练习javafx做饼图。下面是开发饼图的代码。如果使用和,我发现输出没有区别。

  • 问题内容: 现在,之间的性能差异和已被淘汰,没有任何理由,更喜欢到? 他们是不同的,是的。 仅限于范围层次结构(向上)-如果它适合您的设计,这可能很好,但是在我看来,这是一个相当随意的限制。 在所有 选择 收听此活动的人中都有效,这在我看来是一个更为明智的限制。 我想念什么吗? 编辑: 为了对回答做出澄清,调度的方向不是我要解决的问题。向上调度事件,-向下调度事件。但是,为什么不总是使用它来覆盖所

  • 问题内容: 我找不到有关Angular.js的信息,并且我在工作时注意到这两个值的工作方式不同。有什么不同? 问题答案: 两者和都会为指令创建一个子作用域。但, 将从原型继承属性(例如,该指令所在的控制器),而不会从父属性继承,因此称为 例如,假设我们有一个控制器c1和两个指令d1和d2, d1(scope:true)将访问c1范围-> prop,因为d2与c1范围隔离。 注1: d1和d2都将为

  • 问题内容: 在AngularJS范围内。在每个事件处理程序(输入指令的keydown / input事件,select指令的change事件等)上调用$ apply()。 看小例子。似乎ngRepeat在每次击键时都会重新计算并重绘,尽管事实是另一个作用域发生了更改。 知道这种决定的理由将是很有趣的。 问题答案: 希望有AngularJS的作者来做,但是我相信$ digest()必须在$ root