将复选框的默认值绑定到角度模型,其中true& false表示为“是”& '没有'?

时间:2015-12-10 11:35:23

标签: javascript angularjs forms

我需要将复选框输入的默认值设置为每个模型的现有值(即'quote.user.tracker'),然后在选择或取消选择时更改模型中的值(这里没问题) )。由于模型值由'是'/'否'字符串而不是真/假来表示,这很复杂。

quote.user.tracker:'quote'是我的控制器,'user'是整个对象,'tracker'是特定的属性。

我无法通过复选框来反映正确的起始值。

我目前的代码:

<input type="checkbox" name="Tracker" id="Tracker" ng-checked="quote.user.tracker='Yes'" ng-model="quote.user.tracker">

我已经尝试过使用下面的ng-show,但无济于事:

<input type="checkbox" name="Tracker" id="Tracker" ng-show="quote.user.tracker='Yes'"ng-model="quote.user.tracker" checked>
<input type="checkbox" name="Tracker" id="Tracker" ng-show="quote.user.tracker='No'"ng-model="quote.user.tracker" checked>  

我做错了什么?谢谢!

2 个答案:

答案 0 :(得分:2)

您不应将ng-checkedng-model一起使用。来自docs

  

请注意,此指令不应与ngModel一起使用,因为这可能会导致意外行为。

您可以使用ng-true-valueng-false-value,如下所示:

<input type="checkbox"
       name="Tracker"
       id="Tracker"
       ng-true-value="'Yes'" 
       ng-false-value="'No'" 
       ng-model="quote.user.tracker">

答案 1 :(得分:2)

=分配

==或===是比较

<input type="checkbox" name="Tracker" id="Tracker" ng-show="quote.user.tracker==='Yes'"ng-model="quote.user.tracker" checked>
<input type="checkbox" name="Tracker" id="Tracker" ng-show="quote.user.tracker==='No'"ng-model="quote.user.tracker" checked>