AngularJS控制器知识讲解
1.angularjs控制器
angularjs控制器是一个构造方法。
可以使用模块实例的controller()方法来声明一个控制器,该方法接收两个参数,第一个是控制器名称,第二个参数是一个方法,即控制器的构造方法。
var app=angular.module("app",[]);
app.controller("controllername",function(){});
angularjs框架在window对象中增加了一个全局的angular对象,我们可以调用angular对象的module()方法返回一个模块实例,然后调用模块实例的controller()方法来声明一个控制器。
2.控制器对象的实例化
用ng-controller指令可以实例化控制器对象,angularjs框架遇到ng-controller指令时,会根据指定的控制器名称查找控制器的构造方法,然后实例化控制器对象,并将控制器依赖的对象注入控制器对象中。
3.控制器对象实例化时angularjs会创建一个新的作用域对象,名称为$scope,然后会把$scope对象注入控制器对象中。
在同一个页面中可以使用多个ng-controller指令来实例化不同的控制器对象。但是每个控制器对应的作用域对象只能与ng-controller指令所在标签的开始标签与结束标签之间的dom元素建立数据绑定。
4.angularjs应用中的dom事件处理可以在控制器中完成。angularjs提供了一系列的事件绑定指令,这些指令是在原生的javascript事件名称前增加一个“ng-”前缀。例如:ng-click、ng-keyup;
5.angularjs应用模块化
angularjs模块的定义方法:angularjs框架在window对象下新增了一个全局的angular对象,可以调用angular对象的module()方法返回一个模块实例。angular.module()方法能够接收三个参数。
angular.module("modulename",[依赖数组],function(用于配置))。
模块定义完毕后,在html页面中通过ng-app指令指定模块名称来进行引用。
使用模块可以解决命名冲突的问题。
angular.module()方法返回一个模块实例对象,可以调用该对象的controller()、directive()、filter()等方法向模块中添加控制器、指令、过滤器等其他。