gpt4 book ai didi

javascript - ng-if 中的 AngularJS 指令不会运行

转载 作者:搜寻专家 更新时间:2023-11-01 04:16:03 24 4
gpt4 key购买 nike

我有一个自定义指令 myDirective 可以在元素上执行任务。

我在 ng-if block 中有这个指令

<div ng-if="condition">
<div my-directive></div>
</div>

像这样的 fiddle :http://jsfiddle.net/hGnvv/在我的 $http 请求加载后,只有 ng-if 条件变为真。

该指令可能在运行时编译,但从未链接,因此代码永远不会运行。如果我用 ng-show 替换 ng-if 指令工作正常。

有什么解决办法吗?

编辑:我无法使用 ng-show,因为我在表单中有 130 个指令。无论如何运行 20 个指令,其他指令根据我的对象类型运行。

  • ng-if="type == 1" 然后加载这些元素
  • ng-if="type == 2" 然后加载其他元素等

如果我将 ng-if 更改为 ng-show,则加载表单需要 8 秒而不是 1 秒。

最佳答案

ng-if 条件最初为 false,因此该元素不存在于 DOM 中并且未链接指令。

当 ng-if 条件稍后变为 true 时,链接回调应该正确触发,如以下示例所示:

单击按钮时将 ng-if 设置为 true:http://jsfiddle.net/q05gret0/

加载$http 请求后将ng-if 设置为true:http://jsfiddle.net/fhu8ky62/1/

如果您没有遇到此行为,则问题可能出在继承范围;检查 ng-if 正在监视您的请求正在更新的同一范围变量。 This article关于父/子范围变量阴影和其他限制有几点。

关于javascript - ng-if 中的 AngularJS 指令不会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30735123/

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