我可以将ng-if指令放在一个也绑定到控制器的元素上

mar*_*vic 5 dart angular-dart

我想知道我有一个控制器和ng-if指令在同一个元素上

<div foo ng-if=“ctrl.visible”>You can see me</div>
Run Code Online (Sandbox Code Playgroud)

和一个控制器,像

NgController(selector: ‘[foo]’,….)
class FooController { var visible = true; }
Run Code Online (Sandbox Code Playgroud)

我应该看到"你能看到我"的文字吗?

mar*_*vic 3

答案如下。我不会看到文字。基本上,ng-if是一个嵌入指令,这意味着整个元素被从 DOM 中剥离出来,并且在 ng-if 实例化 Block 之前不会实例化其他指令,但这永远不会发生,因为它ctrl.visible甚至从未在范围上发布过,所以它总是错误的。 ..先有鸡还是先有蛋的问题。实际上,情况可能更糟:ctrl可能是父控制器,如果该控制器碰巧具有可见字段,则可能会导致不可预测的行为。