我有自定义指令声明,替换设置为 true 。
当我将它放在带有单独关闭标记的html中时:
<div>
<search-box search="search(query)" query="query" ></search-box>
<div class="dataDiv">
<!--other div elements -->
</div>
</div>
一切都按预期工作。
但是以这种方式重写html之后:
<div>
<search-box search="search(query)" query="query" />
<div class="dataDiv">
<!--other div elements -->
</div>
</div>
指令完全用它的模板替换所有父div内容,并从生成的html页面中删除 dataDiv 。
这是预期的角度行为还是可以在指令声明中更改的内容?
指令:
function SearchBox() {
return {
restrict: 'E',
replace: true,
template: '...',
scope: {
query: '='
},
link: function($scope, $element){
...
},
controller: function ($scope) {
...
}
}
}
答案 0 :(得分:2)
根据您的doctype,您可能会给&#34;关闭&#34;削减。
默认情况下,yeoman生成器和角度种子使用<!doctype html>
(html5)
在HTML 5中,<foo />
表示<foo>
。斜杠只是syntactic sugar
请检查此Are (non-void) self-closing tags valid in HTML5?
根据浏览器的实施情况,它会在一个或另一个地方自动添加结束标记,就像您打开body
或strong
并阅读呈现的代码一样。