gpt4 book ai didi

javascript - AngularJS 在 insideHTML 编辑上中断

转载 作者:行者123 更新时间:2023-11-28 18:38:49 25 4
gpt4 key购买 nike

我刚刚在摆弄时遇到了一个非常好奇的问题。

我创建了一个日志记录函数,它将文本附加到 document.body.innerHTML 中,如下所示。

function log(text)
{
document.body.innerHTML += text + '<br>';
}

如果我现在从我的 Controller 范围调用这个函数,它会破坏 AngularJS。

有人可以解释一下这种行为吗?

<小时/>

Demo - 多次点击栏,它们就会开火。单击 foo 一次,所有单击事件都不再起作用

最佳答案

因为您正在设置 innerHTML ,您正在有效地重新创建整个<body>元素。 Controller 和指令链接到的元素将被破坏,您的应用程序将中断(任何普通 JavaScript 事件处理程序也会中断)。

document.body.innerHTML +=在任何情况下都是一个坏主意,尤其是在使用 Angular 时。

如果您需要这样做,并且无法通过标准 Angular 绑定(bind)等来做到这一点,更好的选择是 angular.element(body).append()

关于javascript - AngularJS 在 insideHTML 编辑上中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36497066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com