【发布时间】:2015-08-24 10:52:15
【问题描述】:
我有一个自定义指令myDirective 对元素执行任务。
我在 ng-if 块中有这个指令
<div ng-if="condition">
<div my-directive></div>
</div>
类似这样的小提琴:在我的$http 请求加载后,http://jsfiddle.net/hGnvv/ 只有ng-if 条件变为真。
该指令可能在运行时编译,但从未链接,因此代码永远不会运行。如果我将ng-if 替换为ng-show,则该指令可以正常工作。
有什么解决办法吗?
编辑:我不能使用ng-show,因为表单中有 130 个指令。无论如何运行 20 个指令,另一个根据我的对象类型运行。
-
ng-if="type == 1"然后加载这些元素 -
ng-if="type == 2"然后加载其他元素等。
如果我将 ng-if 更改为 ng-show,则加载表单需要 8 秒而不是 1 秒。
【问题讨论】:
-
您已经有了解决方案。用 ng-show 替换 ng-if
-
我做不到,我在一个表单上有 130 条指令。如果我用 ng-show 替换 ng-if,所有这些必须运行的代码会使表单变得更慢(8s 而不是 ~1s)。
-
尽可能使用 ng-show。 ng-if 从 DOM 中移除元素,所以 Angular 无法编译它。
-
@AlexArvanitidis - 130 条指令 - 你想做什么?
标签: javascript angularjs compilation angular-directive angular-ng-if