Kendo ui 将多个项目(如数组)添加到现有Kendo UI数据源

Kendo ui 将多个项目(如数组)添加到现有Kendo UI数据源,kendo-ui,datajs,Kendo Ui,Datajs,我已经为此工作了几个小时,无法找到一种方法使它正常工作。我正在寻找将数组内容添加到现有KendoUI数据源的正确方法。基本上我有4个SharePoint列表,我使用DataJS从每个列表中获取数据。然后我想在剑道网格视图中显示项目,但我不想使用for语句和add()方法添加项目。我已经尝试直接在数组上使用add()方法,但这只是将数组作为对象本身添加到数据源中,当然,这不是预期的行为。我还尝试使用dataSource.data.concat(),但收到错误: 对象不支持属性或方法“concat”

我已经为此工作了几个小时,无法找到一种方法使它正常工作。我正在寻找将数组内容添加到现有KendoUI数据源的正确方法。基本上我有4个SharePoint列表,我使用DataJS从每个列表中获取数据。然后我想在剑道网格视图中显示项目,但我不想使用
for
语句和
add()
方法添加项目。我已经尝试直接在数组上使用
add()
方法,但这只是将数组作为对象本身添加到数据源中,当然,这不是预期的行为。我还尝试使用
dataSource.data.concat()
,但收到错误:

对象不支持属性或方法“concat”


假设新数据位于一个名为
newData
的数组中。您可以使用:

var newData = [
    { ... },
    { ... },
    { ... }
];

$.merge(newData, datasource._pristine);
datasource.data(newData);

上述解决方案对我不起作用。Telerik管理员建议的方法如下:

var vm = kendo.observable({
  data: new kendo.data.ObservableArray([])
});

vm.data.push.apply(vm.data, [ 1, 2, 3]);

这种方式会导致绑定小部件的一次呈现。在此处找到:

这似乎对我不起作用,因为我的数据源是一个延迟加载的Web API服务。因此,当我这样做时,数据源还没有加载,我只得到了我试图合并的新常量项。我被卡住了吗?或者有没有办法让Web API服务起作用?请注意
$.merge()
参数的顺序!如果应该追加
newData
(不加前缀),那么它应该是第二个参数。同样在我的剑道版本中,属性
\u pristineData
,而不是
\u pristine
。最后,通过直接使用.data()将
datasource.data(…)
设置为新值,您将“分离”远程服务。相反,我使用
模式:{data:function(){}}
返回数据,就好像它是从已合并的远程服务返回的一样