gpt4 book ai didi

javascript - AngularJS:ngChecked 不工作

转载 作者:行者123 更新时间:2023-11-27 23:42:25 26 4
gpt4 key购买 nike

我有以下单选按钮:

<input type="radio" ng-value="option.text" ng-model="selected.value" name="option" ng-checked="poll_post.poll_option_id == option.id">

我已经仔细检查了 poll_post.poll_option_idoption.id 是否相等。因此 ng-checked 内的表达式被评估为 true。但在 View 中,该选项未被选中。我究竟做错了什么?

最佳答案

你不应该一起使用 ngModel 和 ngChecked。
ngChecked 是一种单向绑定(bind),也就是说,它只会检查表达式的值并相应地设置输入,但如果您更改输入的值,它不会将该值传递给它所绑定(bind)的变量。
另一方面,ngModel 将检查其绑定(bind)的变量的值,并在输入更改时设置变量的值。
ngChecked 相对于 ngModel 的优点是您可以使用表达式而不是变量。

不过,如果两者都存在,ngModel“胜过”ngChecked(ngChecked 的优先级为 100,而 ngModel 的优先级为 1,请在此处搜索“优先级”: https://docs.angularjs.org/api/ng/service/ $compile ),并且 ngChecked 表达式的更改将不会被通过到变量 ngModel 绑定(bind)到

您可以在此 Plunker 中看到,即使 Val1 具有 checked="true",变量 $scope.selected 设置为 Val2 所以 ng-model 胜过 ng-checked http://plnkr.co/edit/nae3b46KNzFKVTqEQPG3?p=preview

如果您想以编程方式更改复选框的状态,您应该编辑已绑定(bind) ng-model 的变量,或删除 ng-model 并仅保留 ng-checked (这取决于您在做什么)。

了解更多信息:
AngularJS: ng-model not binding to ng-checked for checkboxes
https://docs.angularjs.org/api/ng/directive/ngChecked

关于javascript - AngularJS:ngChecked 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33567813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com