控制器(controller)
AngularJS1.x的核心之一就是控制器部分,主要对于视图中的数据和事件处理函数进行挂载,同时进行一定的业务功能的底层封装和处理。
AngularJS1.2版本之前,AngularJS中定义控制器,是直接定义成window全局函数进行处理的,这样的控制器可以被所有的模块共用,称为全局控制器;这样的处理模式的优点是编写方便,处理流程清晰;缺点是容易造成变量和函数的全局污染。所以AngularJS在1.2版本之后,进行了优化调整,废弃了全局控制器,而是将控制器注册在模块中,成为模块中的局部控制器存在,局部控制器也就相当于限定了控制器的作用域范围。
控制器在AngularJS中的作用:
1.通过`$scope`进行数据状态的初始化操作。
2.通过`$scope`进行事件处理函数的挂载操作。
注:不使用控制器做下面的操作:
1. DOM操作:建议使用AngularJS中的数据双向绑定和自定义指令执行操作。
2. 表单处理:建议使用Angular中的form controls进行操作。
3. 数据格式化展示:建议使用Angular中的过滤器Filter进行操作。
4. 不同控制器之间的数据共享:建议使用Angular中的自定义服务Service进行处理。
5. 组件生命周期的操作:建议使用Angular中的自定义服务Service进行处理。
控制器语法结构代码:
var app = angular.module(“myApp”, []);
app.controller(“myCtrl”, function($scope) {
控制器函数操作部分
控制器主要进行数据的初始化操作和事件函数的定义
});
多个控制器:
为了方便多个控制器中的公共数据初始化,AngularJS提供了一个全局作用域对象`$rootScope`, AngularJS应用中,仅有一个全局作用域,其他所有的$scope作用域都是`$rootScope`的子元素。