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

Ale*_*dis 5 javascript compilation angularjs angular-ng-if angular-directive

我有一个自定义指令myDirective,在一个元素上执行任务.

我在一个ng-if区块中有这个指令

<div ng-if="condition">
    <div my-directive></div>
</div>
Run Code Online (Sandbox Code Playgroud)

像这个小提琴:http://jsfiddle.net/hGnvv/只有ng-if在我的$http请求加载后条件变为true .

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

有解决方案吗

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

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

如果我更改ng-ifng-show,表单需要加载8秒而不是1秒.

Ale*_*dis 2

问题不是指令没有运行,而是$watch我在其中的函数根本没有运行。我无法理解问题的确切原因,因为相同的指令在外部工作正常ng-if

无论如何,将我更改$watch为 ->$watchCollection现在工作正常,因为它可以看到我正在 $watching 的对象的所有更新。