需要删除ng-if的绑定

时间:2016-07-12 23:05:35

标签: angularjs angular-ng-if

代码:

<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”。

建议我的错误。

1 个答案:

答案 0 :(得分:0)

双冒号使用一次性绑定语法,因此一旦评估flag,它就不再观看它了。在这种情况下,您需要删除::。

此外,如果您在显示或隐藏的按钮上有任何操作(如点击事件),则在使用ngif时需要重新绑定它们。如果你使用ngshow / nghide你就不会。以下是何时使用哪个的好总结: When to favor ng-if vs. ng-show/ng-hide?

编辑要添加,如果flag在最初评估时总是返回true,那么你需要先看看你如何设置你的值,因为一旦设置它就不会在解析代码后重新评估一次性约束。