你不应该一起使用 ngModel 和 ngChecked。
ngChecked 是一种单向绑定,即它只会检查表达式的值并相应地设置输入,但如果您更改输入的值,它不会将值传递给它绑定到的变量。
另一方面,ngModel 将检查它绑定到的变量的值,并在输入发生变化时设置变量的值。
ngChecked 优于 ngModel 的优点是您可以使用表达式而不是变量。
尽管如此,如果两者都存在,则 ngModel“胜过”ngChecked(ngChecked 的优先级为 100,而 ngModel 的优先级为 1,请在此处搜索“优先级”:https ://docs.angularjs.org/api/ng/service/$compile )和ngChecked 表达式的更改不会传递给 ngModel 绑定到的变量
Val1
你可以在这个 Plunker中看到,即使checked="true"
变量$scope.selected
设置为Val2
所以 ng-model 胜过 ng-checked http://plnkr.co/edit/nae3b46KNzFKVTqEQPG3?p=preview
如果您想以编程方式更改复选框的状态,您应该编辑已将 ng-model 绑定到的变量,或删除 ng-model 并仅保留 ng-checked(这取决于您在做什么)。
有关更多信息:
AngularJS:ng-model 未绑定到 ng-checked 复选框
https://docs.angularjs.org/api/ng/directive/ngChecked