【发布时间】:2017-06-09 18:35:42
【问题描述】:
我有一个演示 application,其中我有一个数组,其中所有元素都是可观察的。在这个应用程序中,我有一个模拟来自服务器的调用的函数 - 获取绑定到列表的相同数组,但更改了一项。这是我实现它的方式:
this.serverDataSimulation=function(){
aArray[Math.floor((Math.random() * 10) + 0)].name=Math.floor((Math.random()
* 2000) + 1000);
ko.mapping.fromJS(aArray, this.allItems);
}
aArray 是从服务器获取的数据的模拟,我使用 ko.mapping 将其绑定到列表。问题是这样整个列表会被重新渲染,而不是只更新一个项目。我仍然希望数组的所有元素在重新绑定之后和重新绑定之前都是可观察的。有没有办法解决这个问题或更好的实现?
【问题讨论】:
-
您可以阅读以下链接中的使用“键”唯一标识对象部分:knockoutjs.com/documentation/plugins-mapping.html。我不确定,但也许在您的可观察数组中只会更改您在
aArray中更改的元素。
标签: javascript knockout.js data-binding