AngularJS: ng-if not working in combination with ng-click?

Blaise提出了一个问题:AngularJS: ng-if not working in combination with ng-click?,或许与您遇到的问题类似。

回答者JB Nizet给出了该问题的处理方式:

  1. Why does 1 not work?: Because an ngIf defines its own scope, which prototypically inherits from its parent scope (just like ngRepeat). So, when you change the value of a field inside an ngIf, you change it in the ngIf scope, and not in its parent scope.
  2. Should 1 work?: No
  3. Why does 2 work?: Because in that case you modify the content of an object which is referenced by the ngId scope, through inheritance.
  4. Should 2 work?: Yes
  5. Can I rely 2 to work in future updates of AngularJS?: Why shouldn't you?

This scope inheritance mechanism is explained very well in