假设我们的选项数组包含诸如此
之类的对象{
id: 1,
name: "Wisconsin",
attr: {
color: "red"
}
}
所以对于敲除绑定,我们可以写这样的东西,
<select data-bind="
options:availableStates,
optionsText:'name',
optionsValue:'id',
value:selectedStateId">
</select>
但是,如果我希望optionsValue = attr.color
值为空
答案 0 :(得分:4)
我们可以使用函数代替字符串来解决这个问题。来自Knockout的documentation:
与
optionsText
类似,您还可以传递一个名为optionsValue
的附加参数,以指定应使用哪些对象的属性来设置KO的<option>
元素的value属性产生。 您还可以指定JavaScript函数来确定此值。此函数将接收所选项作为其唯一参数,并应返回一个字符串以用于<option>
元素的value属性。
optionsValue: function(self) { return self.attr.color }