-
指令设置选项:
angular .module('myApp',[])
.directive('myDirective',function(){
return:{
//通过设置项来定义指令,在这里进行复写
}
});
restrict(字符串)
- 必选参数
- E(元素
<my-directive></my-directive>
- A(属性、默认值)
<div my-drective></div>
- C(类名)
<div class="my-drective"></div>
- M(注释)
<-- directive:my-drective expression-->
这些选项可以单独使用也可以混合使用
priority(数值型)
- 默认值:0
- 如果一个元素上面具有两个优先级相同的指令,声明在前面的那个会被优先调用
ngRepeat
是所有指令中优先级最高的,它总是在其他指令之前运行,参数设置为1000
terminal(布尔型)
- true/false
- 这个参数用来告诉AngularJS停止运行当前元素上比本指令优先级低的指令。当同当前指令优先级相同的指令
还是会被执行。(false)
template(字符串或函数)
- 一段HTML文本
template:
'<div>Hello angular</div>'
- tElement/tAttrs,返回一个代表模板的字符串
templateUrl(字符串或函数)
- 一个代表外部HTML文件的路径的字符串
- tElement/tAttrs,返回一个外部HTML文件路径字符串
调用指令时候会在后台通过ajax来请求HTML模板文件,在本地开发时,需要在后台运行一个本地服务器,用以加载文件系统的html模板,模板加载是异步的,以为这编译和链接要暂停,等待模板加载完成。
replace(布尔值)
- 默认值为false ,默认值意味着模板会被当作子元素插入到调用此指令的元素内部
指令作用域、独立域
- 默认值为false
- 当scope设置为true时,会从父作用域继承并创建一个新的作用域对象。
- 作用域的继承机制是向下而非向上的
隔离作用域:
angular .module('myApp',[])
.directive('myDirective',function(){
return:{
restrict:'AE',
scope:{},
priority:100,
template:
}
});
摘取自《AngularJs权威教程》