2016-02-25 59 views
0

让我们考虑一个非常简单的代码:角度范围;特殊情况

<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对象可通过控制台访问?当比较结果为真时,我需要写什么?

x.__proto__===*.Scope.prototype 

x.__proto__ returns Scope{}。这个范围物体的生命?

回答

3

构造函数/函数Scope故意不暴露给控制台。它在角库内深处的IIFE内定义 - 具体在$RootScopeProvider函数内。所有你需要知道的是你可以使用作用域对象的$new()方法创建新的作用域 - 你不需要直接访问这个构造方法。