この問題は奇妙だと思います。
基本的に、条件に基づいてページにブロックが存在するようにしng-if
ます。しかし、ng-if
上記のブロック内でそれを変更しようとしても、他の要素には影響しません。
なぜこうなった?
JSFiddle はここにあり、コードは以下のとおりです。
<div ng-controller="MyCtrl">
<div ng-init="shouldShow=false">
<div ng-if="!shouldShow">
<p>{{shouldShow}}</p>
<div>
<button ng-click="shouldShow=!shouldShow">Hide Section</button>
<button ng-if="!shouldShow">Should Disappear</button>
</div>
</div>
</div>
</div>