AngularJS学习之directive自定义指令
来源:互联网 发布:非全日制法律硕士 知乎 编辑:程序博客网 时间:2024/04/30 02:53
对于指令,可以把它简单的理解成在特定DOM元素上运行的函数,指令可以扩展这个元素的功能。
AngularJS应用的模块中有很多方法可以使用,其中directive()这个方法是用来定义指令的:
.directive('myDirective', function () {
// 指令定义放在这里
});
directive() 方法可以接受两个参数:
1. name(字符串)
指令的名字,用来在视图中引用特定的指令。
注:对于名字,在编写指令时名字遵循驼峰准则,在使用时,用“-”连接。例如:定义myDirective,调用my-directive
2. factory_function (函数)
这个函数返回一个对象,其中定义了指令的全部行为。 $compile服务利用这个方法返回的对象,在DOM调用指令时来构造指令的行为。
.directive('myDirective', function() {
// 一个指令定义对象
return {
// 通过设置项来定义指令,在这里进行覆写
};
});
指令的工厂函数 只会在编译器第一次匹配到 这个指令时 调用一次。
当AngularJS在DOM中遇到具名的指令时,会去匹配已经注册过的指令,并通过名字在注册过的对象中查找。此时,就开始了一个指令的生命周期,指令的生命周期开始于$compile方法并结束于link方法。
具有更高优先级的指令总是优先运行。
angular.module('myApp', [])
.directive('myDirective', function() {
return {
restrict: String, // 默认为A,指令在DOM中可以何种形式被声明,元素E、属性A、类名C、注释M
priority: Number, // 优先级
terminal: Boolean, // 默认false,设为true,停止运行当前元素上比本指令优先级低的指令
template: String or Template Function: function(tElement, tAttrs) (...},
templateUrl: String, // 模板使用Ajax异步加载replace: Boolean or String, // 默认为false,设为true,引用的模板会替换原来的
scope: Boolean or Object,
transclude: Boolean,
controller: String orfunction(scope, element, attrs, transclude, otherInjectables) { ... },
controllerAs: String,
require: String,
link: function(scope, iElement, iAttrs) { ... },
compile: // 返回一个对象或连接函数,如下所示:
function(tElement, tAttrs, transclude) {
return {
pre: function(scope, iElement, iAttrs, controller) { ... },
post: function(scope, iElement, iAttrs, controller) { ... }
}
// 或者
return function postLink(...) { ... }
}
};
- AngularJS学习之directive自定义指令
- Angularjs自定义指令(directive)
- angularjs directive 指令 学习笔记
- AngularJS之directive指令参数
- AngularJS自定义指令directive:scope属性
- AngularJS自定义指令directive:scope属性
- AngularJS自定义指令directive:scope属性
- AngularJS 学习笔记 -- 指令(Directive)
- AngularJs学习笔记(二) 指令directive
- AngularJS的directive指令执行流程学习
- 学习AngularJs:Directive指令用法(完整版)
- 学习AngularJs:Directive指令用法(完整版)
- 学习AngularJs:Directive指令用法(完整版)
- AngularJS directive指令之require部分
- angularJS系列之指令directive应用实例
- AngularJs 指令directive之controller,link,compile
- AngularJs 指令directive之controller,link,compile
- AngularJs 指令directive之controller,link,compile
- ES6学习——集合(Collections):Set API
- 关于高级语言编译、操作系统、硬件的关系思考(二)
- ES6学习——集合(Collections):Set 应用示例
- 机器学习-非监督学习(Unüberwachte Lernverfahren)+大型数据库:Clustering-1
- AngularJS学习之$digest循环和$apply
- AngularJS学习之directive自定义指令
- rails分段查询
- nodejs小记之handlebars视图与静态文件布置
- C#串口通信
- 饿了么移动 APP 的架构演进
- iOS利用Runtime自定义控制器POP手势动画
- 用返回0~6随机数的函数构造返回0~9随机数的函数
- 怎么做好互联网公司的技术团队负责人?
- Yaf framework 相关