javascript - Angularjs指令删除父div中的所有内容

标签 javascript angularjs

我有自定义指令声明,replace 设置为 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

这是预期的 Angular 行为还是可以在指令声明中更改的内容?

指令:

function SearchBox() {
    return {
        restrict: 'E',
        replace: true,
        template: '...',
        scope: {
            query: '='
        },
        link: function($scope, $element){
            ...
        },
        controller: function ($scope) {
            ...
        }
    }
}

最佳答案

根据您的文档类型,您可能会给“结束”斜杠赋予错误的含义。 默认情况下,yeoman 生成器和 Angular 种子使用 <!doctype html> (html5)

在 HTML 5 中,<foo />意味着<foo> 。斜杠就是 syntactic sugar 检查这个Are (non-void) self-closing tags valid in HTML5?

根据浏览器的实现,它会自动在一个地方或另一个地方添加结束标记,就像您离开 body 时一样或strong打开并阅读渲染的代码。

关于javascript - Angularjs指令删除父div中的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23273236/

相关文章:

javascript - $http 中的 Angular 1 数据绑定(bind) promise 不起作用

javascript - 在 highcharts 的 Y 轴上显示带下划线的标签文本

javascript - Visual Studio Bundle for SPA html 索引页

javascript - 如何使用 webpack 服务器端处理静态 Assets ?

javascript - 如何在页面上将 Angular 表达式打印为字符串?

javascript - Ember - 将数据从服务器检索到 View ?

javascript - 什么是 ngModel.$validators 管道?

javascript - 在 click 方法外部触发 e.preventDefault()

javascript - 机器人不会在直线中自行发送欢迎消息

angularjs - 链接多个 Promise,包括 Promise.all