在带有optgroup的select中使用selectedOptions knockout绑定预选多个值

时间:2014-04-02 11:49:46

标签: jquery data-binding drop-down-menu knockout.js optgroup

Ello,

我已经尝试了所有选项来制作带有optgropus的(多个)选择框,并将选项/ selectedOptions与knockout绑定。

selectedOptions绑定似乎存在问题。我的数据似乎是合法的,但它不会显示预选的选项。

我在JSFiddle中做了一个例子:http://jsfiddle.net/aCS7D/251/

<select data-bind="selectedOptions: selectedOptions" multiple="multiple">
<option>Please choose an option</option>
<optgroup data-bind="repeat: groups" data-repeat-bind="attr: {label: $item().label}">
    <option data-bind="repeat: $item().children" data-repeat-bind="text: $item().label, option: $item()"></option>
</optgroup>

使用单个选定选项可以使用,但是有多个选择选项,选择框无法正确呈现它们。

如果有人能解决这个问题,那么你就是我的英雄!

1 个答案:

答案 0 :(得分:2)

您可以在应用this之类的绑定后推送它们:

this.selectedOptions = ko.observableArray([]);

//The single selected option
this.selectedOption = ko.observable(selected1);    

var vm = new ViewModel()
ko.applyBindings(vm);
var selected1 = vm.groups()[1].children()[1];
var selected2 = vm.groups()[1].children()[0];
vm.selectedOptions.push(selected1);
vm.selectedOptions.push(selected2);
相关问题