当我对select使用'value'时,我可以将对模型的引用存储为值。
<select data-bind="value: selectedOption,
attr: {name: $parent.name},
options: options,
</select>
以上效果非常好。模型存储在父模型中,因此我可以在其他地方访问它的所有属性。经过检查,我只能存储真假:
<input type="checkbox" data-bind="checked: $parent.selectedOption, checkedValue: $data" />
在这种情况下,$parent.selectedOption
是一个可观察的,我的假设是我应该能够写入我想要的任何数据(在这种情况下是$ data,它在当前范围引用模型)。 / p>
为什么KO没有将模型作为值传递,只有true / false?
编辑:当我将selectedOption
切换到一个可观察的数组时,它会传入我想要的任何内容......但我不想使用数组。
编辑2:在输入上,如果我将value
或checkedValue
数据绑定更改为'foo',它仍然只返回true或false。这就像我无法覆盖布尔值。
答案 0 :(得分:2)
为什么KO没有将模型作为值传递,只有true / false?
因为您已经为它提供了(常规)可观察对象,所以Knockout假设您只是想知道是否选中了该复选框。毕竟,复选框只能有两种状态。
但是,如果你给它一个可观察的数组,当你与复选框交互时,Knockout会在数组中添加/删除checkedValue
。