轉載地址:http://www.cnblogs.com/liulangmao/p/3720271.html
本篇主要介紹控制器:
控制器在前面的例子中已經大量的用到,它的作用主要是:
控制某塊視圖,通過$scope向這塊視圖提供數據,函數,並且監視需要被檢測的部分,當發生變化時,做出相應的動作,從而起到控制該部分視圖的作用
爲了保持控制器的最小化和可管理,應該爲視圖中的每個功能都創建一個控制器,比如,有一個菜單,就創建一個menuController,有一個導航,就創建一個NavController...
控制器可以內嵌,比如:
<div ng-controller = "ParentController"> <h3>{{title}}</h3> <div ng-controller = SonController> <h5>{{title}}</h5> <div> </div>
function ParentController ($scope){ $scope.title = 'I am ParentController'; } function SonController ($scope){ $scope.title = 'I am SonController'; }
可以得到正確的視圖:
如果我們把這句話註釋掉:
//$scope.title = 'I am SonController';
會得到這樣的視圖:
實際上,控制器的嵌套,就是作用域的嵌套,傳遞給內嵌控制器呃$scope繼承了它父控制器的$scope.
所以SonController的$scope可以訪問ParentController的$scope的所有屬性和方法
------------------------------------------------------------------------------------------------------------------------------------------------------------
遺留問題:
當一個視圖有多個功能的時候,沒有辦法爲一個div添加兩個控制器,雖然控制器可以嵌套,但不能錯位嵌套,比如:
<div ng-controller="controllerOne">
<div ng-controller="controllerTwo">
</div>
</div>
另外,還有一個"視圖+路由"的方法,將在後面介紹.不知道是否能夠解決這些問題.