AngularJS:ng-model没有绑定到ng检查checkbox
在提出这个问题之前我提到了这个问题。
AngularJs不会绑定ng-model与ng-model
如果ng-checked
在html
方面评估为true
,那么ng-model
不会更新。 我不能按照上面的问题build议ng-repeat
,因为我必须为每个checkbox使用一些样式。
这里是我创build的掠夺者来说明我的问题。
http://plnkr.co/edit/YsOsPh3vjkPMUUDa6r2t
要查看我想要的内容,请打开控制台,然后点击Submit
button。 请不要检查任何checkbox。
提前致谢!
ngModel
和ngChecked
不能一起使用。
ngChecked
正在期待一个expression式,所以通过说ng-checked="true"
,你基本上说这个checkbox将被默认选中。
你应该能够使用ngModel
,绑定到你的模型的布尔属性。 如果你想要别的东西,那么你需要使用ngTrueValue
和ngFalseValue
(它现在只支持string),或者编写你自己的指令。
你想要做什么? 如果你只是想默认选中第一个checkbox,你应该改变你的模型 – item1: true,
编辑:你不必提交你的表单debugging模型的当前状态,顺便说一句,你可以将{{testModel}}
转储到您的HTML(或<pre>{{testModel|json}}</pre>
)。 另外你的ngModel
属性可以简化为ng-model="testModel.item1"
。
你可以使用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