KnockoutJS:将选中的值设置为true或false以外的值

时间:2015-10-02 20:34:46

标签: knockout.js

当我对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:在输入上,如果我将valuecheckedValue数据绑定更改为'foo',它仍然只返回true或false。这就像我无法覆盖布尔值。

1 个答案:

答案 0 :(得分:2)

  

为什么KO没有将模型作为值传递,只有true / false?

因为您已经为它提供了(常规)可观察对象,所以Knockout假设您只是想知道是否选中了该复选框。毕竟,复选框只能有两种状态。

但是,如果你给它一个可观察的数组,当你与复选框交互时,Knockout会在数组中添加/删除checkedValue