AngularJS(十二)控制器

来源:互联网 发布:mac 触摸板 鼠标中键 编辑:程序博客网 时间:2024/06/01 10:26

转载地址: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>

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

原创粉丝点击