我正在编写一个指令来简化我的HTML,但是它没有应用于编写为<blah></blah>
的元素,即使它被调用为写为<blah />
的元素:
HTML:
<search-filter type="text" name="query" update="doSearch()"/>
<search-filter type="bool" name="xp">XP Levels</search-filter>
<search-filter type="bool" name="lotd">LOTDs</search-filter>
指令:
angular.module("blah", [])
.directive("searchFilter", function($compile) {
return {
restrict: "E",
terminal: true,
priority: 1000,
compile: function(element, attrs) {
element = angular.element(element);
console.log(element);
switch (element.attr("type")) {
case "text":
//do stuff
break;
case "bool":
//do stuff
break;
}
}
};
})
它适用于第一个元素,它是自动关闭的,但不适用于其他元素。
答案 0 :(得分:1)
在HTML 5中,<search-filter />
表示<search-filter>
。因此,您永远不会关闭阻止其他两个元素工作的第一个元素。全部使用<search-filter></search-filter>
,它会正常工作。
如果元素是void元素之一,或者元素是 一个外来元素,那么可能有一个U + 002F SOLIDUS字符 (/)。此字符对void元素没有影响,但对外部元素没有影响 元素它将开始标记标记为自动关闭。
您的指令被视为 void element 。外部元素只是MathML名称空间和SVG名称空间中的元素。