ng-init 不适用于 ng-if

Arp*_*mar 5 angularjs angular-directive angular-filters

我有一个div

<div class="error-text" ng-if="customerIdLength > customerIdMaxLength" ng-init="error='yes'" >Error presented</div>

这里ng-if工作正常。

根据ng-init值,我禁用了这样的按钮:

<button class="btn btn-success" type="submit" ng-click="submitNumber();" ng-disabled="error=='yes'">Submit</button>
Run Code Online (Sandbox Code Playgroud)

这是行不通的。如果我把它放在ng-init其他没有的元素上,ng-if那么它就可以正常工作。那么背后的原因是什么呢?

Rob*_*die 0

ng-ifng-show之间的区别在于,ng-if实际上从 DOM 中删除附加到它的 html 元素,导致你的ng-init表达式不被执行。

只需将其替换为ng-show即可解决问题

<div class="error-text" ng-show="customerIdLength" ng-init="error='yes'">Error presented</div>
Run Code Online (Sandbox Code Playgroud)