虽然它是通过ng-hide隐藏的,但是指令的控制器运行中的代码

时间:2016-12-01 16:18:32

标签: angularjs

在这个例子中:

<div ng-hide="hideMe">
   <my-directive></my-directive>
</div>

我希望控制器中的代码myDirective,而不是hideMe === true时运行。

有没有办法做到这一点,而不是将所有控制器代码包装在if (!hideMe === true)语句中?

2 个答案:

答案 0 :(得分:1)

ngHide只是隐藏元素,但如果您不希望它被运行,则应使用ngIf代替。根据文档,ngIf删除或重新创建DOM树的一部分(即,没有元素,没有指令,没有控制器),但ngHide只改变其可见性。

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

答案 1 :(得分:0)

您应该实际使用ng-if指令,因为如果条件为false,则不会对内部代码进行求值。您可以参考以下链接以便更好地理解。

what is the difference between ng-if and ng-show/ng-hide