我想知道如果我在与
相同的元素上有一个控制器和ng-if指令<div foo ng-if=“ctrl.visible”>You can see me</div>
和控制器,类似
NgController(selector: ‘[foo]’,….)
class FooController { var visible = true; }
我是否应该看到“你能看到我”的文字吗?
答案 0 :(得分:3)
这是答案。我不会看到文字。基本上,ng-if
是一个transcluding指令,这意味着整个元素被从DOM中删除,并且没有其他指令被实例化,直到ng-if实例化Block,但是从未发生过,因为ctrl.visible
从来都不是发表在范围上,所以它总是假的...鸡和鸡蛋的问题。实际上,情况可能更糟:ctrl
可能是父控制器,如果该控制器碰巧有可见字段,则可能导致不可预测的行为。