gpt4 book ai didi

javascript - Angularjs:使用 Angular Directive(指令)修改 Angular 表达式提供的内部html内容

转载 作者:行者123 更新时间:2023-11-28 03:27:44 25 4
gpt4 key购买 nike

我有一个简单的 Angular Directive(指令),如果相应的范围选项变量大于 1,则将字符串 'yes' 添加到元素的内部 html 内容。当内部 html 是 Angular 表达式时,原始文本将被保留,但无论范围选项变量值如何,都不会向其中添加"is"。我已经通过将代码包装在我的指令中来修复此问题,该指令修改了超时函数内的内部 html 文本,但是是否有一种不使用超时的正确方法来执行此操作?

代码示例:http://plnkr.co/edit/OhePRiHNJvNfKgNcrbnQ?p=preview

最佳答案

$timeout 在这里没问题。它实际做的是强制 HTML 在指令中的 Javascript 调用 .html() 之前先完成渲染。如果没有超时,HTML 渲染可能尚未在浏览器中完成。

在这里使用超时不是 hack - 您可以将时间设置为 0,它仍然有效。只要有 $timeout/setTimeout 就可以将其中的代码移动到浏览器事件队列的末尾 - 在 HTML 呈现工作完成之后,这就是您想要的。 Why is setTimeout(fn, 0) sometimes useful?有更多关于其工作原理和原因的详细信息。

关于javascript - Angularjs:使用 Angular Directive(指令)修改 Angular 表达式提供的内部html内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20079204/

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