爲什麼當我們創建一個指令時,它僅限於默認情況下的屬性。爲了創建由元素或類名稱觸發的指令,我們需要使用restrict選項?angularjs中可用的限制類型有多少種類
的限制選項通常設置爲:
- 'A' - 僅匹配屬性名,
- 'E' - 僅匹配元素名稱,
- 'C' - 僅匹配的類名。
這些限制可以根據需要所有組合:
- 「AEC」 - 匹配任一屬性或元素或類名。
只有這些限制是可用的angularjs?或者,還有其他限制嗎?
爲什麼當我們創建一個指令時,它僅限於默認情況下的屬性。爲了創建由元素或類名稱觸發的指令,我們需要使用restrict選項?angularjs中可用的限制類型有多少種類
的限制選項通常設置爲:
這些限制可以根據需要所有組合:
只有這些限制是可用的angularjs?或者,還有其他限制嗎?
AngularJS在默認情況下期望我們將聲明一個自定義指令作爲屬性,這意味着restrict
選項設置爲A
。
可用選項有:
E
= 元 <new-directive></new-directive>
A
= 屬性(默認) <div new-directive="expr"></div>
C
= 類 <div class="new-directive: expr;"></div>
M
= 評論 <!-- directive: new-directive expr -->
當然他們可以組合使用:
{ restrict: 'EC' } // Element or class
屬性是默認的,因爲他們真正的工作跨瀏覽器,包括老年沒有在文檔中註冊新標籤的IE。
我被告知,我建議不要使用註釋限制來聲明指令,因爲它們要跨越多個元素,但在新版本中有像ng-repeat-end等鉤子。
從angular documentation提取:EACM的子集的
restrict
串限制指令到特定的指令,聲明風格。如果省略,則使用默認(僅限屬性)。
E
- 元素名稱:<my-directive></my-directive>
A
- 屬性(默認):<div my-directive="exp"></div>
C
- 類別:<div class="my-directive: exp;"></div>
M
- 評論:<!-- directive: my-directive exp -->
'M = Comment'? ?? –
是的。我會建議不要使用它。 – dachi
哇!有趣。我正在等待任何其他限制+1 –