角度范围;一个特例

时间:2016-02-25 09:45:49

标签: javascript angularjs

让我们考虑一个非常简单的代码:

<div id="main" ng-app='myapp' ng-init="qty=1;cost=2">
  <div>
    Quantity: <input type="number" ng-model="qty">
  </div>
</div>

在Chrome控制台中:

var x=angular.element('#main').scope();

返回:

Scope {$id: 1, $$childTail: ChildScope, $$childHead: ChildScope, $$prevSibling: null, $$nextSibling: null…}

我的问题以何种方式通过控制台访问上述Scope对象?当比较返回true时,我必须写什么东西?

x.__proto__===*.Scope.prototype

x.__proto__ returns Scope{}以来。这个范围对象存在于哪里?

1 个答案:

答案 0 :(得分:3)

有意不将Scope构造函数/函数暴露给控制台。它在角度库内深处的IIFE内定义 - 特别是在$RootScopeProvider函数内。您需要知道的是,您可以使用范围对象的$new()方法创建新范围 - 您无需直接访问此构造方法。