指令定义对象模板

demoApp.directive('demoDirective', function () {
  var directiveDefinitionObject = {
    multiElement:  
    priority:
    terminal:
    scope: {},  
    bindToController: {},
    controller:
    controllerAs:
    require:
    restrict:
    templateNamespace:
    template:
    templateUrl:
    transclude:
    compile: 
    link: function(){}                                  
  };
  return directiveDefinitionObject;
});
  1. multiElement - 设置为 true,指令名称的开头和结尾之间的任何 DOM 节点都将被收集并作为指令元素组合在一起
  2. priority - 允许在单个 DOM 元素上定义多个指令时指定顺序以应用指令。首先编译具有更高编号的指令。
  3. terminal - 设置为 true,当前优先级将是要执行的最后一组指令
  4. scope - 设置指令的范围
  5. bind to controller - 将范围属性直接绑定到指令控制器
  6. controller - 控制器构造函数
  7. require - 需要另一个指令并将其控制器作为链接函数的第四个参数注入
  8. controllerAs - 在指令范围内对控制器的名称引用,以允许从指令模板引用控制器。
  9. restrict - 将指令限制为 Ele​​ment,Attribute,Class 或 Comment
  10. templateNameSpace - 设置指令模板使用的文档类型:html,svg 或 math。html 是默认值
  11. template - 默认替换指令元素内容的 html 标记,如果 transclude 为 true,则包装指令元素的内容
  12. templateUrl - 为模板异步提供的 url
  13. transclude - 提取指令出现的元素的内容,并使其可用于指令。内容被编译并作为转换函数提供给指令。
  14. compile - 转换模板 DOM 的函数
  15. link - 仅在未定义编译属性时使用。link 函数负责注册 DOM 侦听器以及更新 DOM。它在克隆模板后执行。