2015-06-22 25 views
3

我是angular/js的新手,尝试使用Sails构建应用程序。

当我创建了一个index.html,其控制器用于在控制台上打印$ scope值时,我看到了附加的屏幕截图。

<div class="container" ng-controller='angHomeController'> 

这里是我的控制器

angular.module('myApp').controller('angHomeController', function($scope, $location) { 
    console.log($scope); 
}); 

这里就是我看到控制台上。 enter image description here

在我脑海中弹出的许多问题中,很少有问题在下面。

在开发/创建/使用模板控制器变量/闭包/回调函数之前,我想了解一些有关这方面的内容。

问:#1。树的深度是 - $ ChildScope。$ parent。$ parent(从Scope继承)。我将$ ChildScope。$ parent。$ parent。$$监听器看作locationChangeStart,locationChangeSuccess和routeChangeSuccess数组,它们的原型(s)。我可以认为这个$ parent。$ parent是由Sails MVC Framework使用angular route的$ routeProvider API创建的吗?问题#2。我假设树中最顶层的$ ChildScope由ng-controller在$ rootScope。$ new中创建。但是,我仍然很感兴趣,为什么树是$ ChildScope。$ parent。$ parent,而不是$ ChildScope。$ parent?我错过了什么吗? $ ChildScope。$父母没有监视者或监听者。 $ ChildScope当然没有任何监听器,因为我没有创建任何事件。

问:#3。我还观察到$ ChildScope。$ parent没有$ root,但是$ ChildScope。$ parent。$ parent。$ root是存在的,它似乎是对$ ChildScope。$ parent。$ parent的引用。另外,$ ChildScope。$ parent。$ parent。$ root。$ root ...是螺旋形的并且不会结束。最后一位$ parent的引用是$ root,它有一个$ root等等。为什么这个根链不存在,它从哪里引用?

+0

最上面的范围是'$ rootScope'。 –

+0

我得到最顶级的范围是$ rootScope。但是,我试图理解的唯一的事情就是Sails中的范围继承,它带有一个简单的ng控制器和我对它的理解。 – uniqrish

回答

0

角度范围'模仿'应用程序的DOM结构。

范围是为Angular App创建的,每个Angular控制器和一些指令(如果您确实指定指令应该创建或重用范围)。

玩$ scope。$ parent。$ parent不推荐,因为它非常脆弱。如果您更改角度控制器或DOM树周围的任何指令,范围层次结构将受到影响。

我建议在角度网站上阅读What are scopes

+0

我了解Angular scopes模仿DOM结构和范围,是的,我在开始编写angularJs程序之前已经阅读了URL。是的,正如我在Q#2中所述,Angular控制器创建了一个ChildScope。但是,应该创建一个$ ChildScope。$ parent但不是$ ChildScope。$ parent。$ parent的树。而且,我没有玩树中的任何父对象。我想知道的是 - $根在最后一位父母下方是如何旋转的。 – uniqrish

相关问题