一、引用template
对于指令,可以把它简单的理解成在特定DOM元素上运行的函数,指令可以扩展这个元素的功能。
指令要生效,那么html头里面要
制定ng-app的值和定义指令的module名字一致:
指令的完整参数:
函数,如下所示: function(tElement,tAttrs,transclude) {
return {
pre: function(scope,iAttrs,controller) { ... },post: function(scope,controller) { ... }
}
return function postLink(...) { ... }
}
};
});
指令可以使用的方式:
restrict[string]
restrict是一个可选的参数。用于指定该指令在DOM中以何种形式被声明。默认值是A,即以属性的形式来进行声明。
可选值如下:
- E(元素)
- A(属性,默认值)
- C(类名)
- M(注释)<--directive:my-directive expression-->
replace[bool]
replace是一个可选参数,如果设置了这个参数,值必须为true,因为默认值为false。默认值意味着模板会被当作子元素插入到调用此指令的元素内部,
百度">百度如果设置replace=true
据我观察,这种效果只有设置restrict="E"的情况下,才会表现出实际效果。
template[string or function]
template参数是可选的,必须被设置为以下两种形式之一:
一段HTML文本;
一个可以接受两个参数的函数,参数为tElement和tAttrs,并返回一个代表模板的字符串。tElement和tAttrs中的t代表template,是相对于instance的。
不管是返回html文本还是函数,都是最后替换一个html,和replace属性搭配使用的,先给出一个完整的index.heml directive.js,以这个为例子来说明:
- C(类名)