在網(wǎng)上看到很多都在講,每個$scope都有對應controller,那么$rootscope的controller在哪里呢?是ng-app屬性所在標簽里的ng-controller,那么如果ng-app所在標簽沒有ng-controller,那么對應的controller又應該怎么表示?
首先用某上海市長回復香港記者的一句話做回答:"沒有聽說過"
這個說法不夠清楚,這個controller究竟指的是什么?如果是ngController這個指令的話,這句話就明顯本末倒置。是ngController這個指令創(chuàng)建了一個新的scope。 如果是指指令中的controller函數(shù),則明顯更不對了,很多指令根本沒有controller函數(shù)。
所以,此處你最好貼出持有這種觀點的網(wǎng)址。。。
另外,ngApp對應根作用域即 $rootscope,本人可能學的比較淺,還不知道其對應的controller,還希望其他大神指正
我覺得這樣理解比較容易:
控制器——controller 僅僅是一種封裝……是AngularJS設計模式的一種定義,僅此而已。不存在什么對應關系。
我們通過ng-controller指令來創(chuàng)建一個控制器。
我們也可以通過$controller服務來創(chuàng)建一個控制器。
控制器通過AngularJS的另一個設計模式——依賴注入 來使用更多服務。比如$scope。而你完全可以不注入$scope……但為什么一定要使用$scope? 因為你可以將$scope理解為 頁面與數(shù)據(jù)的高速通道,或者橋梁,或者連接,或者粘合劑…… 也就是 控制器中定義的所有東西,想要反應到頁面上,就必須通過$scope
比如
controller:
$scope.text = "hello world!";
view:
{{ text }}
因此,不存在什么控制器和$scope作用域有對應關系。他倆沒什么關系。就好像,你有兩張紙,想做一個模型,你還需要膠水。你說紙和膠水有對應關系嘛?