2016-07-28 80 views
0

https://jsfiddle.net/bngk/7urrobaa/复选框以ng重复角JS结合

<div ng-repeat="item in items" ng-init="item.showCb = item.value == 'true' || item.value == 'false'"> 

<input type="checkbox" ng-if="item.showCb" ng-true-value="true" ng-false-value="false" ng-model="item.value" ng-checked="item.value == 'true'">{{items[$index].value}}</input> 
    <input type="text" ng-if="!item.showCb" ng-model="item.value"/> 
    </div> 

我有约束力的NG-重复的复选框问题,如果我有默认几个检查的值当值不在模​​型,如果正确地更新所有的都是默认情况下不检查的,它可以工作,但是在模型中更新了值,虽然我提到了ng-true-value =“true”和ng-false-value =“false”作为字符串,它保留了布尔值。我希望字符串值在模型中出现。请检查我的小提琴。感谢您的支持。

+1

你的代码有很多错误......''是一个* self * closing **标签**,'ngModel'和'ngChecked'不应该一起使用。 'ngInit'不是用于这个目的.. – developer033

+0

自动关闭标签和ng-init很好。但没有ng-checked,我无法设置默认值,没有ng-model,我无法绑定这些值。请让我知道如何在这种情况下使用ng-model&ng-checked ...在此先感谢... – bngk

回答

2

如果你看看文档:https://docs.angularjs.org/api/ng/input/input%5Bcheckbox%5D,你可以看到ng - * - value接受一个表达式。所以如果你简单地把ng-true-value="true",它看作是一个真实的表达。

如果你把ng-true-value=" 'true' ",那么它知道它是一个字符串。

但如上所述,您的代码中还有其他一些错误。