2015-06-22 28 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

相關問題