Knockout.js 敲除-如何使用敲除将多选列表框项目(任意顺序的选定项目)转移到另一个列表框?

Knockout.js 敲除-如何使用敲除将多选列表框项目(任意顺序的选定项目)转移到另一个列表框?,knockout.js,knockout-2.0,knockout-mvc,Knockout.js,Knockout 2.0,Knockout Mvc,我有两个多选列表视图(dropdownList multiple),当用户在第一个列表中选择一个选项时,会自动插入/传输到第二个多选列表(dropdownList),并从第一个多选列表中删除该选项 <label>Selectable Services</label> <select class="span12" id="selectService" data-bind="foreach: groups, value: selectedOption" Multiple

我有两个多选列表视图(dropdownList multiple),当用户在第一个列表中选择一个选项时,会自动插入/传输到第二个多选列表(dropdownList),并从第一个多选列表中删除该选项

<label>Selectable Services</label>
<select class="span12" id="selectService" data-bind="foreach: groups, value: selectedOption" Multiple="Multiple" height="10">
    <optgroup data-bind="attr: { label: label }, foreach: children">
        <option data-bind="text: label, option: $data"></option>
    </optgroup>
</select>
<label>Selected Services</label>
<select class="span12" id="selectedService" multiple="multiple" height="5" data-bind="options: allServices, selectedOptions: selectedServices"></select>
可选服务
选定服务

两种选择的可用选项只需使用两个ObservableArray即可。从一个。移除(项目)并将(项目)推到另一个。淘汰赛将跟踪变化。尝试一个事件或单击绑定。或者将此函数置于可观察的选定项中


您制作一个示例JSFIDLE并不是为了在示例中提供更多帮助。

我正在尝试实现同样的功能。我的JSFIDLE:。问题是,当我单击可用列表时,[对象对象]被添加到所选列表中,而所选项目没有从可用列表中删除。这是因为
单击
$data
绑定为函数参数,当您将其绑定到
选择
时,
$data
是整个视图模型,而不是单个项目(因此没有要添加/删除的匹配项)。检查:现在每个
都有自己的
单击绑定,因此每个数组项都作为参数传递。fiddle中缺少一些标记。您应该检查一下。除此之外,我没有IE。我认为这是JSFIDLE的常见问题。它似乎与IE8不兼容。