代码:
<label class="checkbox-inline">
<input type="checkbox" name="activeFlag" id="active"
value="active" ng-checked="flag" ng-click="flag=!flag"/>
<span ng-show="flag">Yes</span><span ng-show="!flag">No</span>
<input ng-if="::flag" type="button" style="width:85px;" value="Active"
class="btn btn-success btn-xs"/>
<input ng-if="::!flag" type="button" style="width:85px;" value="Deactivated"
class="btn btn-danger btn-xs"/>
</label>
在这里你可以看到,我需要在单击复选框时将“是”切换为“否”,但是一旦修复后我就不需要更改我的按钮值。我尝试使用::falg
,但它只为flag的任何初始值发出“Active”。
建议我的错误。
答案 0 :(得分:0)
双冒号使用一次性绑定语法,因此一旦评估flag
,它就不再观看它了。在这种情况下,您需要删除::。
此外,如果您在显示或隐藏的按钮上有任何操作(如点击事件),则在使用ngif时需要重新绑定它们。如果你使用ngshow / nghide你就不会。以下是何时使用哪个的好总结: When to favor ng-if vs. ng-show/ng-hide?
编辑要添加,如果flag在最初评估时总是返回true,那么你需要先看看你如何设置你的值,因为一旦设置它就不会在解析代码后重新评估一次性约束。