我是angular / js的新手,并尝试使用Sails构建应用程序。
当我创建一个index.html时,我用它在控制台上打印$ scope值的控制器,我看到了附带的截图。
<div class="container" ng-controller='angHomeController'>
这是我的控制器
angular.module('myApp').controller('angHomeController', function($scope, $location) {
console.log($scope);
});
这就是我在控制台上看到的内容。
出现在我脑海中的许多问题中,很少有人在下面。
在进入开发/创建/使用模板控制器变量/闭包/回调之前,我想了解一些相关的事情。
Q值。 #1。树的深度是 - $ ChildScope。$ parent。$ parent(继承自Scope)。我看到$ ChildScope。$ parent。$ parent。$$监听器作为locationChangeStart,locationChangeSuccess和routeChangeSuccess数组及其 proto (s)。我可以认为这个$ parent。$ parent是由Sails MVC Framework使用$ routeProvider API创建的吗?
Q值。 #2。我认为树中最顶层的$ ChildScope是由$ rootScope上的ng-controller创建的。$ new。但是,我仍然很感兴趣为什么树是$ ChildScope。$ parent。$ parent,而不是$ ChildScope。$ parent?我错过了什么吗? $ ChildScope。$ parent没有观察者或听众。当然,$ ChildScope没有任何听众,因为我还没有创造任何活动。
Q值。 #3。我还观察到$ ChildScope。$ parent没有$ root,但$ ChildScope。$ parent。$ parent。$ root是现有的,它似乎是对$ ChildScope的引用。$ parent。$ parent。此外,$ ChildScope。$ parent。$ parent。$ root。$ root ...是螺旋式的,不会结束。最后一个$ parent的引用是$ root,它有一个$ root,依此类推。为什么这个根链不存在?它从哪里引用?
答案 0 :(得分:0)
角度范围&#39;模仿&#39;应用程序的DOM结构。
为Angular App,每个Angular控制器和一些指令创建了范围(如果您确实指定该指令应该创建或重用范围)。
使用$ scope。$ parent。$ parent不建议使用,因为它非常脆弱。如果更改角度控制器或DOM树周围的任何指令,则范围层次结构将受到影响。
我建议在有角度的网站上阅读What are scopes。