在问这个问题之前,我提到了这一点。
AngularJs doesn't bind ng-checked with ng-model
如果ng-checked
在html
端的计算结果为true
,则不会更新ng-model
。我不能像上面问题中建议的那样使用ng-repeat
,因为我必须为每个复选框使用一些样式。
这是我为了说明我的问题而创建的柱塞。
http://plnkr.co/edit/YsOsPh3vjkPMUUDa6r2t
要查看我想要的内容,请打开控制台,然后单击Submit
按钮。请不要选中任何复选框。
提前感谢!
发布于 2013-05-17 11:52:19
ngModel
和ngChecked
不能一起使用。
ngChecked
需要一个表达式,所以通过说ng-checked="true"
,你基本上是说复选框在默认情况下总是处于选中状态。
您应该能够仅使用ngModel
,并将其绑定到模型上的布尔属性。如果您想要其他东西,那么您要么需要使用ngTrueValue
和ngFalseValue
(目前只支持字符串),要么编写您自己的指令。
你到底想做什么?如果您只想在默认情况下选中第一个复选框,那么您应该更改您的模型-- item1: true,
。
编辑:您不必提交表单来调试模型的当前状态,顺便说一句,您只需将{{testModel}}
转储到您的HTML (或<pre>{{testModel|json}}</pre>
)中即可。此外,还可以将ngModel
属性简化为ng-model="testModel.item1"
。
发布于 2015-04-07 19:08:49
您可以使用ng-value-true告诉angular您的ng-model是一个字符串。
如果我像这样添加额外的引号,我才能让ng-true-value工作(如官方Angular文档-https://docs.angularjs.org/api/ng/input/input%5Bcheckbox%5D所示)。
ng-true-value="'1'"
发布于 2016-08-18 20:51:09
您可以做的是使用ng-repeat
将您迭代的任何内容的值传递给ng-checked
,然后从那里利用ng-class
根据结果应用您的样式。
我最近做了一些类似的事情,它对我很有效。
https://stackoverflow.com/questions/16601018
复制相似问题