码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-07-06 19:24:33      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:

指令定义对象

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

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

  • link

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

link函数的形式如下:

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

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

  1. * E - 元素名,例如:<my-directive></my-directive>
  2. * A - 属性名,例如:<div my-directive="exp"></div>
  3. * C - 类,例如:<div class="my-directive: exp;"></div>
  4. * M - 注释,例如:<!-- directive:my-directive exp -->
  • template

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

  1. * 替换指令的内容。这是默认的行为,可以使用replace属性更改。
  2. * 替换指令本身(如果replace属性设为TRUE的话)。
  3. * 包裹指令的内容(如果transclue属性设为TRUE的话)。
  • replace

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

  1. * true - 编译时,将使用template替换指令元素
  2. * false - 编译时,将使用template替换指令元素的内容

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

标签:

原文地址:http://www.cnblogs.com/rainheader/p/4625057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!