2013-02-27 87 views
0

Knockoutjs绑定有什么办法可以指定自定义数据 - 选项吗?Knockout.js选项自定义数据 - 东西

<select data-bind="options: filtered, value: value, optionsText: 'Text', optionsValue: 'Value', 'data-something': 'Description' }"></select> 

,这导致:

<option value="foo" data-something="description">Text</option> 

请不要回复。

回答

1

Custom Binding

<select data-bind="createDropDown: filtered"></select> 

然后添加自定义的绑定方法,在那里你可以自己处理阵列和手动每个选项添加到选择:

ko.bindingHandlers.yourBindingName = 
{ 
    update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) 
    { 
     ko.utils.arrayForEach(valueAccessor(), function (item) 
     { 
      $(element).append('<option value="' + item[value] + '" data-something="' + item[description] + '">' + item[text] + '</option>'); 
     }); 
    } 
}; 

我没有测试这一点,但你应该明白了。

+0

好的工作,然后提问者 – nav0611 2013-02-28 07:57:28

0

也许这是你在找什么?

<select data-bind="foreach: filtered"> 
    <option data-bind="text: Text, attr: {value: Value, 'data-something': Description}"></option> 
</select>