1. name(字符串)
指令的名字,用来在视图中引用特定的指令。
2. factory_function (函数)
这个函数返回一个对象(或者函数),其中定义了指令的全部行为。$compile服务利用这个方法返回的对
象,在DOM调用指令时来构造指令的行为。
<span style="font-size:18px;">angular.application('myApp',[]) .directive('myDirective',function() { // 一个指令定义对象 return { // 通过设置项来定义指令,在这里进行覆写 }; });</span>
指令的选项
restrict | 可选;以何种形式申明(可取值:A C M E ) |
priority | 数值。大多数指令会忽略这个参数,使用默认值0 |
terminal | true/false;用来告诉AngularJS停止运行当前元素上比本指令优先级低的指令 |
template |
字符串(HTML代码)或者函数(tElement,eAttrs); |
templateUrl | 同上 |
replace | true/false;false表示模板会被当作子元素插入到调用此指令的元素内部 |
scope | 可选的;可取值:true/false 或者一个对象, |
transclude | 可选的;true; |
controller | 字符串或者函数;函数中 可以使用$scope,$element $attrs $transclude;可复用 |
link | 当前指令内部定义行为;方法参数:scope element attrs 如果require是true的话 ,还有另一个参数controller |
controllerAs | 字符串,设置控制器的别名 |
require | 字符串或者数组:。require会将控制器注入到其值所指定的指令中,并作为当前指令的链接函数的第四个参数。 |
compile | 对象或者函数 |
scope:绑定数据:
@ (or @attr):本地作用域属性:使用@符号将本地作用域同DOM属性的值进行绑定。指令内部作用域可以
使用外部作用域的变量
= (or =attr):双向绑定:通过=可以将本地作用域上的属性同父级作用域上的属性进行双向的数据绑定。
就像普通的数据绑定一样,本地属性会反映出父数据模型中所发生的改变。
& (or &attr):父级作用域绑定 通过&符号可以对父级作用域进行绑定,以便在其中运行函数。意味着对这 个值进行设置时会生成一个指向父级作用域的包装函数。 要使调用带有一个参数的父方法,我们需要传递一个对象,这个对象的键是参数的名称,值是要传递给参数的内容。