我正在做什么:每隔30秒轮询一次远程数据源。
然后我做self.MyCollection(newData);
。
我的问题:因为我可能已经过滤了数组或扩展了UI中的特定数组项,所以我不希望它每30秒重置一次。
我只想在项目实际更改时更新并重新渲染我的observableArray。
当基础observableArray发生变化时,任何人都知道如何避免重置ui - 或者 - 当只有1个或更少的基础项发生变化时,如何避免整个observableArray发生变化?
答案 0 :(得分:1)
我不知道你想要做什么,但官方的knockoutjs文档描述了一个类似的问题:http://knockoutjs.com/documentation/plugins-mapping.html
在Customizing object updating using “update”
部分:
您还可以通过指定来自定义对象的更新方式 更新回调。它将收到它正在尝试更新的对象 一个options对象,与create使用的对象相同 回调。
答案 1 :(得分:0)
我通过简单地迭代observableArray中的项并解决了这些值(它们本身就是可观察的)来解决这个问题。这更新了列表中的<li>
,而不是整个<ul>
。