时隔一个星期,接着上一篇的angularjs应用骨架继续聊聊angularjs其他的其他的内容。
区分UI和控制器的职责
在应用控制器中有三种职责:
1、为应用中模型设置初始状态
2、通过$scope对象把数据模型和函数暴露给视图(UI模版)
3、监视模型其余部分的变化,并采取相应的动作
我这主要想说的是第三项的功能:为了让控制器保持小巧可控制的状态,我们的建议是,为视图中的每一块功能区域创建一个控制器。就是说如果你有一个菜单,就创建一个MenuController,如果你有一个面包屑导航就创建一个NavController,你可能已经明白,但是需要明确的是,控制器是绑定在DOM上的,这些片段就是它们需要管理的内容。有两种方式可以把控制器关联到DOM节点上,第一种是通过ng-controller属性来声明,另一种是通过路由把它绑定到一个动态加载的DOM模版片段上,这个模版叫做视图。
如果你的UI带有一些非常复杂的区域,你可以创建嵌套的控制器,它们可以通过继承树结构来共享数据模型和函数,这样你就可以保持代码的简单和可维护性。嵌套控制器非常的简单,只需要把控制器设置到DOM元素内部嵌套的元素上即可,示例如下:
1 <div ng-controller="ParentController"> 2 <div ng-controller="ChildController"></div> 3 </div>