Checkbox 复选框选中值绑定

Checkbox 复选框选中值绑定,checkbox,knockout.js,checked,Checkbox,Knockout.js,Checked,下面的代码是我为复选框编写的。不知道为什么它没有显示为选中的值,即使它正确地来自我的JS文件 如果chosenPerson包含两个值,则应在复选框中选中这两个值。这不会发生 我还尝试: 我也试过: 使chosenPerson处于“选中”状态时没有任何效果 请建议解决方案。您的绑定应返回true,因此将其更改为- <input type="checkbox" data-bind="attr: { value: person.id}, checked: $root.chosenPe

下面的代码是我为复选框编写的。不知道为什么它没有显示为选中的值,即使它正确地来自我的JS文件


如果
chosenPerson
包含两个值,则应在复选框中选中这两个值。这不会发生

我还尝试:


我也试过:


使
chosenPerson
处于“选中”状态时没有任何效果


请建议解决方案。

您的绑定应返回true,因此将其更改为-

<input type="checkbox" data-bind="attr: { value: person.id}, checked: $root.chosenPerson() === $data">

其中chosenPerson等于输入元素的上下文。如果元素不在人的上下文中,只需执行以下操作

<input type="checkbox" data-bind="attr: { value: person.id}, checked: $root.chosenPerson() === person()">

如果您的
chosenPerson
数组包含整数,则复选框的值也必须是整数。这不可能使用
attr/value
绑定,因为它只设置元素的
value
属性,该属性始终是字符串。相反,您应该使用
checkedValue
绑定,它可以绑定任何类型的值

<input type="checkbox" data-bind="checkedValue: person.id, checked: $root.chosenPerson">


感谢您的回复。我不理解您提供的第二条语句中的$root.chosenPerson()===person()是什么。对我来说,chosenPerson()基本上来自我的JS文件。这是一个击倒阵型。但是这里的person()是什么?请引导我。再次感谢。@user2598808 person是数组中任何内容的示例。如果要对数组进行
foreach
绑定并使用其中的复选框,只需使用
$data
绑定即可