击倒剑道MultiSelect: Enter键清除先前选定的值



我正在使用击倒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网站上有一个工作示例。

请看下面的注释:

JSFiddle

感谢同事发现这个!

这个版本的剑道(V.2015.1.429)和Knockout-Kendo存在兼容性问题。

显然这是一个已知的问题:

快速修复(自定义绑定):

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

相关内容

  • 没有找到相关文章

最新更新