gpt4 book ai didi

javascript - 扩展剑道多选并使用 MVVM

转载 作者:行者123 更新时间:2023-11-28 08:09:26 25 4
gpt4 key购买 nike

我正在尝试扩展剑道多重选择,以便它具有默认数据源和模板。除了 MVVM 对象中预加载的值之外,一切都正常。当我开始更新扩展的多选时,MVVM 的值会更新,初始项目只是未预加载:

kendo.ui.plugin(kendo.ui.MultiSelect.extend({
init: function(element, options) {
var ds = new kendo.data.DataSource({
type: "json",
serverFiltering: true,
transport: {
read: {
url: "/SecurityEntities",
dataType: "json"
},
parameterMap: function(data) {
return {
prefixText: '',
count: 5,
getUsers: true,
getGroups: false
};
}
},
schema: {
data: function(data) {
console.log($.parseJSON(data));
return $.parseJSON(data);
}
}
});
options = options == null ? {} : options;
options.itemTemplate = "...";
options.tagTemplate = "...";
options.dataSource = ds;

kendo.ui.MultiSelect.fn.init.call(this, element, options);
},
options: {
name: 'EntityMultiSelect'
}
}));

kendo.data.binders.widget.entitymultiselect =
kendo.data.binders.widget.multiselect;

那么我的html是:

<div data-bind="value: machine.Managers" data-role="entitymultiselect" 
data-delay="400" data-animation="false"
data-placeholder="Select users to notify"></div>

我将整个容器绑定(bind)到页面的 viewModel 对象。

我看到其他人也遇到了这个问题,并添加了

kendo.data.binders.widget.entitymultiselect = 
kendo.data.binders.widget.multiselect;

(是的,这确实看起来像一个错误)

但是还是不行。

当 Machine.Managers 中已有值时,它不会加载它们。但是,如果我将值添加到多选中,它们就会添加到 Machine.Managers 中。

编辑:

我添加了直播example

最佳答案

至少在您的演示中这是一个微不足道的问题:您的data-value-field是错误的。因此, Binder 无法匹配所选元素。

而不是

<div data-role="entitymultiselect" 
data-bind="value: selected"
data-value-field="ProductId"></div>

你需要

<div data-role="entitymultiselect" 
data-bind="value: selected"
data-value-field="ProductID"></div>

( working demo )

由于您没有在问题的代码中定义值字段,因此可能是同一个问题。

关于javascript - 扩展剑道多选并使用 MVVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24460848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com