我在问这个问题之前提到过这一点:AngularJs doesn't bind ng-checked with ng-model
如果 ng-checked
在 html
端评估为 true
,则 ng-model
不是更新。我无法按照上述问题中的建议进行ng-repeat
,因为我必须为每个复选框使用一些样式。
这是我为了说明我的问题而创建的 plunker。
http://plnkr.co/edit/YsOsPh3vjkPMUUDa6r2t
要查看我想要的内容,请打开控制台,然后单击提交
按钮。请不要选中任何复选框。
最佳答案
ngModel
和ngChecked
不适合一起使用。
ngChecked
正在等待一个表达式,因此可以说 ng-checked="true"
,您基本上是说默认情况下始终会选中该复选框。
您应该可以使用 ngModel
,绑定(bind)到模型上的 bool 属性。如果您想要其他东西,那么您需要使用 ngTrueValue
和ngFalseValue
(目前仅支持字符串),或编写您自己的指令。
您到底想做什么?如果您只想默认选中第一个复选框,则应该更改您的模型 - item1: true,
.
编辑:您不必提交表单来调试模型的当前状态,顺便说一句,您可以转储 {{testModel}}
到您的 HTML(或 <pre>{{testModel|json}}</pre>
)中。还有你的ngModel
属性可以简化为 ng-model="testModel.item1"
.
关于AngularJS:ng-model 未绑定(bind)到 ng-checked 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16601018/