指令定义:
angular.module(
"app"
,[]).directive(
"directiveName"
,
function
(){
return
{
//通过设置项来定义
};
})
一般形式:
myApp.directive(‘myDir’, function(provider){ return { restrict: ‘A’, link: function(scope, element, attrs) { ... } } });返回参数
restrict
(字符串)可选参数,指明指令在DOM里面以什么形式被声明;取值有:E(元素),A(属性),C(类),M(注释),其中默认值为A;当然也可以两个一起用,比如EA.表示即可以是元素也可以是属性。
[html] view plain copy 在CODE上查看代码片派生到我的代码片
E(元素):<directiveName></directiveName>
A(属性):<div directiveName='expression'></div>
C(类): <div class='directiveName'></div>
M(注释):<--directive:directiveName expression-->
一般情况下E/A/C用得比较多。
先看看directive是怎么生效的:(这是指导PPT上的内容)
1.标准浏览器的API转化
将html格式转化成dom
2.Angular的编译
搜索匹配的directive,按照优先级priority的顺序,执行directive上的compile方法
3.Angular的连接
执行directive的link方法,进行scope绑定和事件绑定