-
StackOverflow 文件
-
AngularJS 教程
-
自定義指令
-
指令定義物件模板
demoApp.directive('demoDirective', function () {
var directiveDefinitionObject = {
multiElement:
priority:
terminal:
scope: {},
bindToController: {},
controller:
controllerAs:
require:
restrict:
templateNamespace:
template:
templateUrl:
transclude:
compile:
link: function(){}
};
return directiveDefinitionObject;
});
multiElement
- 設定為 true,指令名稱的開頭和結尾之間的任何 DOM 節點都將被收集並作為指令元素組合在一起
priority
- 允許在單個 DOM 元素上定義多個指令時指定順序以應用指令。首先編譯具有更高編號的指令。
terminal
- 設定為 true,當前優先順序將是要執行的最後一組指令
scope
- 設定指令的範圍
bind to controller
- 將範圍屬性直接繫結到指令控制器
controller
- 控制器建構函式
require
- 需要另一個指令並將其控制器作為連結函式的第四個引數注入
controllerAs
- 在指令範圍內對控制器的名稱引用,以允許從指令模板引用控制器。
restrict
- 將指令限制為 Element,Attribute,Class 或 Comment
templateNameSpace
- 設定指令模板使用的文件型別:html,svg 或 math。html 是預設值
template
- 預設替換指令元素內容的 html 標記,如果 transclude 為 true,則包裝指令元素的內容
templateUrl
- 為模板非同步提供的 url
transclude
- 提取指令出現的元素的內容,並使其可用於指令。內容被編譯並作為轉換函式提供給指令。
compile
- 轉換模板 DOM 的函式
link
- 僅在未定義編譯屬性時使用。link 函式負責註冊 DOM 偵聽器以及更新 DOM。它在克隆模板後執行。