Kendo ui Can';t更新viewModel中的dataSource.at(0)

Kendo ui Can';t更新viewModel中的dataSource.at(0),kendo-ui,telerik,everlive,Kendo Ui,Telerik,Everlive,在我的viewModel中,我将用户属性绑定到userDataSource。位于(0): 只要我只使用用户数据,这就行了。但当我尝试更新数据时,它不起作用 vm.user.set('DisplayName','John Doe'); vm.userDs.sync(); 这是行不通的。问题是vm.user现在已更新,但vm.userDs的第一个元素没有更改。似乎user不是指向userDs中第一个元素的指针,而是第一个元素的副本 如果我这样做,它会起作用: vm.userDs.at(0).set

在我的viewModel中,我将用户属性绑定到userDataSource。位于(0):

只要我只使用用户数据,这就行了。但当我尝试更新数据时,它不起作用

vm.user.set('DisplayName','John Doe');
vm.userDs.sync();
这是行不通的。问题是vm.user现在已更新,但vm.userDs的第一个元素没有更改。似乎user不是指向userDs中第一个元素的指针,而是第一个元素的副本

如果我这样做,它会起作用:

vm.userDs.at(0).set('DisplayName','John Doe');
vm.userDs.sync();

但这是一个相当丑陋的解决办法。我希望vm.user是指向userDs中元素的指针。

结果表明,这不起作用的原因是我在定义数据源后更改了它的过滤器

userDataSource = {
   ...
}
userDataSource.filter({/*filter config*/});
在userDataSource定义中移动筛选器解决了以下问题:

userDataSource = {
   ...
   filter: {/*filter config*/}
}
我仍然不完全理解为什么这会造成如此巨大的差异,但至少我知道如何解决它

userDataSource = {
   ...
   filter: {/*filter config*/}
}