Custom directive, with dom operation, events, css and scope model operation

Date format:
Current time is:

自定义指令的选项参数

angular.module('myApp', []) .directive('myDirective', function() { return { restrict: String, //'EACM', 元素,属性(默认),类名,注释 priority: Number, // 1000 > 0, 0代表默认最低优先级,数越大优先级越高 terminal: Boolean, // true的意思是停止与否,如果此指令的表达式为真,那么继续执行其它,为假更低优先级的指令就不运行了 // 使用了 terminal 参数的例子是 ngView 和 ngIf 。 ngIf 的优先级略高于 ngView ,如果 ngIf 的表达式值为 true , // View 就可以被正常执行,但如果 ngIf 表达式的值为 false ,由于 ngView 的优先级较低就不会被执行。 template: String or Template Function: function(tElement, tAttrs){ }, // templateUrl可以替代它,更方便 templateUrl: String or Template Function: function(tElement, tAttrs){ }, // 1. 在本地开发时,需要在后台运行一个本地服务器,用以从文件系统加载HTML模板,否则会导致Cross Origin Request Script(CORS)错误。  // 2. 模板加载是异步的,意味着编译和链接要暂停,等待模板加载完成 replace: Boolean or String, // 默认false, 以子元素插入; true意思是替代原来元素 scope: Boolean or Object, // 默认false, scope 设置为 true 时,会从父作用域继承并创建一个新的作用域对象 // scope: { // ngModel: '=', // 将ngModel同指定对象绑定 // onSend: '&', // 将引用传递给这个方法 // fromName: '@' // 储存与fromName相关联的字符串 // } transclude: Boolean, // 只有当你希望创建一个可以包含任意内容的指令时, 才使用 transclude: true controller: String or function(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( ) { } } }; });