Angularjs指令从父div中删除所有内容

时间:2014-04-24 15:25:45

标签: javascript angularjs

我有自定义指令声明,替换设置为 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) {
            ...
        }
    }
}

1 个答案:

答案 0 :(得分:2)

根据您的doctype,您可能会给&#34;关闭&#34;削减。 默认情况下,yeoman生成器和角度种子使用<!doctype html>(html5)

在HTML 5中,<foo />表示<foo>。斜杠只是syntactic sugar 请检查此Are (non-void) self-closing tags valid in HTML5?

根据浏览器的实施情况,它会在一个或另一个地方自动添加结束标记,就像您打开bodystrong并阅读呈现的代码一样。