1 angular.module(‘moduleName‘, []).directive( 2 ‘namespaceDirectiveName‘, 3 [ function() { 4 return { 5 restrict : ‘‘,// 描述指令在模版中的使用方式,包括元素E,属性A,CSS样式类,注释或者以上方式的任意主和 6 priority : 0,// 设置指令在模版中的执行顺序,顺序是相对于其他指令而言 7 template : ‘‘,// 以字符串的形式编写一个内联模版,如果以url的形式提供模版,此属性会被忽略 8 templateUrl : ‘‘,// 描述加载模版所需要的url。如果使用temlate形式提供模版,此属性会被忽略 9 replace : true,// 如果设置为true则替换指令所在的元素,否则就追加到元素内部 10 transclude : true,// 把指令元素原来的子节点移动到一个新模版内部 11 scope : ‘bool or object‘,// 为当前指令创建一个新的作用域,而不是使之继承父作用域 12 constroller : function($scope, $element, $attrs, $transclude) { 13 // 创建一个控制器,它会暴露一个API,利用这个API可以在多个指令之间进行通信 14 }, 15 require : ‘‘,// 要求必须存在另个一指令,当前指令才能执行 16 link : function(scope, iElement, iAttrs) { 17 // 使用编程的方式修改最终生成的dom元素的实例,添加事件监听器,并设置数据绑定 18 }, 19 compile : function(tElement, tAttrs, transclude) { 20 //在使用ng-repeat用编程的方式修改dom模版,从而实现一个指令跨越多个指令的特性。 21 //也可以返回一个link函数,可以用它来修改产生元素的示例 22 return { 23 pre : function preLink(scope, iElement, iAttrs, 24 controller) { 25 }, 26 post : function postLink(scope, iElement, iAttrs, 27 controller) { 28 } 29 30 } 31 } 32 }; 33 } ]);
时间: 2024-11-08 21:22:21