angular學習筆記(十二)-控制器

詩&遠方發表於2014-05-10

本篇主要介紹控制器:

控制器在前面的例子中已經大量的用到,它的作用主要是:

控制某塊檢視,通過$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>

另外,還有一個"檢視+路由"的方法,將在後面介紹.不知道是否能夠解決這些問題.

相關文章