将selectvalue作为Knockout中绑定选项列表中的对象返回

时间:2013-09-20 08:00:51

标签: knockout.js

我想将键值对象绑定到knockout中的选项列表

function ParameterOption(name , value) { 
    this.name = name;
    this.value = value;
}

我的选择列表

<select data-bind="
  options: Options, 
  value: SelectedValue,
  optionsText: 'name',
  attr :{'id':Id, 'name':Name}"></select>

我正在使用级联dropboxed所以我需要选项文本来获取下一个列表。 当我提交表格时,我想发送价值。

这是我到目前为止所做的working fiddle

我的问题是,如果我在提交表单时没有设置optionsValue,则参数没有任何价值。但是,如果我设置optionsValue : 'value',我会得到模型中的原始值,而不是我想要的ParameterOption对象。

有没有办法将值绑定到选项并仍然将对象作为选定值返回到模型?

1 个答案:

答案 0 :(得分:1)

您可以使用optionsAfterRender参数设置每个选项的value属性,在提交时为选择框提供文本值,但不会扰乱Knockout使用的对象值:

optionsAfterRender: function(option, item) { option.value = item.value }

jsFiddle:http://jsfiddle.net/7fJkh/4/

参考:http://knockoutjs.com/documentation/options-binding.html