我將一個集合綁定到一個select multi,集合中的某些項目也在第二個集合中,我想將它們設置爲select multi中的selectedOptions。Knockout.Js selected從第二個集合中篩選的選項
我一直希望使用ko.utils.arrayFilter來做到這一點,但似乎不能過濾其他集合。
http://jsfiddle.net/dumbarse/BcUBK/
<select data-bind="options:availableThings,optionsText: 'Title', selectedOptions: selectedComputeThings" size="5" multiple="true"></select>
var initialThingsModel = [
{"Id":1,"Title":"First"},
{"Id":2,"Title":"Next"},
{"Id":3,"Title":"Another"},
{"Id":4,"Title":"Last"}
];
var initialSelectedThingsModel = [
{"Id":2,"Title":"Next"},
{"Id":4,"Title":"Last"}];
var viewModel = {
availableThings: ko.observableArray(initialThingsModel),
selectedThings: ko.observableArray(initialSelectedThingsModel)
};
viewModel.selectedComputeThings = ko.computed(function() { return ko.utils.arrayFilter(viewModel.availableThings(), function(item) { return item.Id == selectedThings.Id;}) });
ko.applyBindings(viewModel);
似乎好的工作,但是當你改變選擇列表中,http://jsfiddle.net/dumbarse/BcUBK/2/,任何想法則計算selectedComputeThings不更新? – Fishbaum
我已經更新了我的答案。 –
我看到你做了什麼,謝謝你,我正在爲淘汰賽文件苦苦掙扎,同時也想知道淘汰賽是否正確。再次感謝! – Fishbaum