您的位置:首页 > 其它

指令定义对象--进阶阶段

2015-07-06 18:24 218 查看

指令定义对象

每个指令定义的工厂函数,需要返回一个指令定义对象,编译器/$compile 在编译时就根据这个定义对象对指令进行展开。

指令定义对象的常用属性如下:

link

link函数负责实现DOM和scope的数据绑定,通常在link里执行DOM事件监听和数据变化监听。 link函数在template执行后被调用。link是最常用的属性,一个指令的逻辑通常在link函数 里实现。

link函数的形式如下:

function link(scope,iElement,iAttrs,controller,transcludeFn){...}

restrict

可以是EACM这四个字母的任意组合,用来限定指令的应用场景。如果不指定这个属性, 默认情况下,指令将仅允许被用作元素名和属性名:

* E - 元素名,例如:<my-directive></my-directive>

* A - 属性名,例如:<div my-directive="exp"></div>

* C - 类,例如:<div class="my-directive: exp;"></div>

* M - 注释,例如:<!-- directive:my-directive exp -->

template

template是一个HTML片段,可以用来:

* 替换指令的内容。这是默认的行为,可以使用replace属性更改。

* 替换指令本身(如果replace属性设为TRUE的话)。

* 包裹指令的内容(如果transclue属性设为TRUE的话)。

replace

指明是否使用template替换指令元素。

* true - 编译时,将使用template替换指令元素

* false - 编译时,将使用template替换指令元素的内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: