本篇主要介绍控制器:
控制器在前面的例子中已经大量的用到,它的作用主要是:
控制某块视图,通过$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>
另外,还有一个"视图+路由"的方法,将在后面介绍.不知道是否能够解决这些问题.