我正在使用 Knockout-Kendo MultiSelect 控件。如果我从列表中选择一个值,然后输入第二个值并单击 Enter,则先前输入的值将被删除。
查看
<select data-bind="kendoMultiSelect: { data: choices, value: selectedChoice }"></select>
Selected: <strong data-bind="text: selectedChoice"> </strong>
查看模型
var ViewModel = function() {
this.choices = ko.observableArray(["apple", "orange", "banana"]);
this.selectedChoice = ko.observable();
};
ko.applyBindings(new ViewModel());
Knockout-Kendo 网站上有一个工作示例。 HERE
请参阅下面的 fiddle :
最佳答案
感谢同事发现了这个!
此版本的 Kendo (V.2015.1.429) 和 Knockout-Kendo 存在兼容性问题。
显然这是一个已知问题: Here
快速修复(自定义绑定(bind)):
ko.bindingHandlers.multiSelect = {
init: function (element, valueAccessor, allBindings, data, context) {
var options = ko.toJS(valueAccessor());
options.change = function (e) {
valueAccessor().value(e.sender.value());
}
$(element).kendoMultiSelect(options);
var multiselect = $(element).data("kendoMultiSelect");
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
multiselect.destroy();
});
}
};
工作示例 JSFiddle
关于javascript - knockout -剑道多选 : Enter Key Clears Previously Selected Values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33109219/