2014-04-02 19 views
5

ello,chọn trước nhiều giá trị sử dụng selectedOptions KnockOut ràng buộc trong một chọn với optgroup

Tôi đã litteraly thử tất cả các tùy chọn để thực hiện một (nhiều) selectbox với optgropus, và ràng buộc các tùy chọn/selectedOptions với loại trực tiếp.

Dường như có sự cố với liên kết được chọn. Dữ liệu của tôi có vẻ hợp pháp, nhưng nó sẽ không hiển thị các tùy chọn được chọn trước.

Tôi đã thực hiện một ví dụ trong 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> 

Với tùy chọn chọn đơn nó hoạt động, nhưng với nhiều selectedoptions, các selectbox không làm cho chúng một cách chính xác.

Nếu có ai có giải pháp cho vấn đề này, bạn sẽ là anh hùng của tôi!

Trả lời

2

Bạn có thể đẩy chúng sau khi bạn áp dụng các ràng buộc như 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); 
+1

Cảm ơn bạn cho giải pháp làm việc của bạn! Tôi không thể thực thi bất kỳ javascript nào sau phần tử ràng buộc do kiến ​​trúc đã chọn. Nhưng tôi sẽ cố gắng sử dụng ràng buộc afterRender để chèn các tùy chọn đã chọn. Nếu tôi làm cho nó hoạt động, tôi sẽ đăng giải pháp cập nhật. – Linksonder

Các vấn đề liên quan