AngularJS:ng-model没有绑定到ng检查checkbox

在提出这个问题之前我提到了这个问题。

AngularJs不会绑定ng-model与ng-model

如果ng-checkedhtml方面评估为true ,那么ng-model不会更新。 我不能按照上面的问题build议ng-repeat ,因为我必须为每个checkbox使用一些样式。

这里是我创build的掠夺者来说明我的问题。

http://plnkr.co/edit/YsOsPh3vjkPMUUDa6r2t

要查看我想要的内容,请打开控制台,然后点击Submitbutton。 请不要检查任何checkbox。

提前致谢!

ngModelngChecked不能一起使用。

ngChecked正在期待一个expression式,所以通过说ng-checked="true" ,你基本上说这个checkbox将被默认选中。

你应该能够使用ngModel ,绑定到你的模型的布尔属性。 如果你想要别的东西,那么你需要使用ngTrueValuengFalseValue (它现在只支持string),或者编写你自己的指令。

你想要做什么? 如果你只是想默认选中第一个checkbox,你应该改变你的模型 – item1: true,

编辑:你不必提交你的表单debugging模型的当前状态,顺便说一句,你可以将{{testModel}}转储到您的HTML(或<pre>{{testModel|json}}</pre> )。 另外你的ngModel属性可以简化为ng-model="testModel.item1"

http://plnkr.co/edit/HtdOok8aieBjT5GFZOb3?p=preview

你可以使用ng-value-true来告诉angular度你的ng模型是一个string。

我只能得到ng-true-value的工作,如果我像这样添加额外的引号(如官方的Angular文档所示 – https://docs.angularjs.org/api/ng/input/input%5Bcheckbox%5D

 ng-true-value="'1'" 

你可以做的是使用ng-repeat将你正在迭代的值传递给ng-checked并从那里利用ng-class根据结果​​来应用你的样式。

我最近做了类似的事情,它为我工作。

可以声明在ng-init中也是成立的

 <!doctype html> <html ng-app="plunker" > <head> <meta charset="utf-8"> <title>AngularJS Plunker</title> <script>document.write('<base href="' + document.location + '" />');</script> <link rel="stylesheet" href="style.css"> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.js"></script> <script src="app.js"></script> </head> <body ng-controller="MainCtrl" ng-init="testModel['item1']= true"> <label><input type="checkbox" name="test" ng-model="testModel['item1']" /> Testing</label><br /> <label><input type="checkbox" name="test" ng-model="testModel['item2']" /> Testing 2</label><br /> <label><input type="checkbox" name="test" ng-model="testModel['item3']" /> Testing 3</label><br /> <input type="button" ng-click="submit()" value="Submit" /> </body> </html> 

你可以select第一个和对象也显示在这里真实的,虚假的,flase