私はng-ifを使用しようとしましたが、Angularは彼をコンパイルしませんでした。テストコードを見てください:
<ul class="tmmenu-admin-tabs-builder-panel-answer">
<li class="tmmenu-admin-tabs-builder-panel-portlet" ng-repeat="answer in answers">
<div>
<span ng-repeat="question in questions">
<label ng-repeat="answer in question.answers">
<input type="checkbox">{{question.id}}.{{answer.id+1}}
<span ng-if="test()">ddd</span>
</label>
</span>
</div>
<textarea>{{answer.text}}</textarea>
</li>
</ul>
および機能テスト:
$scope.test = function(){
console.log('d');
return false;
}
このページを実行すると、false を返すテストにもかかわらず、"Li" に "ddd" が表示されます。
次のステップでは、「ng-if」「ng-show」に置き換えました。
<ul class="tmmenu-admin-tabs-builder-panel-answer">
...
<span ng-show="test()">ddd</span>
...
</ul>
そして、その機能、「ddd」非表示。ng-show が動作している場所で ng-if が動作しないのはなぜですか?