【问题标题】:Knockout-Kendo MultiSelect: Enter Key Clears Previously Selected ValuesKnockout-Kendo MultiSelect:输入键清除先前选择的值
【发布时间】:2015-10-13 17:43:17
【问题描述】:

我正在使用 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

请参阅下面的小提琴:

JSFiddle

【问题讨论】:

标签: javascript jquery knockout.js knockout-kendo


【解决方案1】:

感谢一位同事找到这个!

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

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

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

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

【讨论】:

    猜你喜欢
    • 2018-02-02
    • 2021-11-22
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    相关资源
    最近更新 更多