首页 > 代码库 > angular学习笔记(十二)

angular学习笔记(十二)

本篇主要介绍控制器:

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

控制某块视图,通过$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>

,同时,也不能在一个页面中出现两个同名的控制器,比如:

<div ng-controller="controllerOne">  

</div>

<div ng-controller="controllerOne">  

</div>

另外,还有一个"视图+路由"的方法,将在后面介绍.不知道是否能够解决这些问题.