从数据源获取时,仅更新可观察数组中更改的项目



我在做什么:每 30 秒轮询一次远程日期源以获取数据。然后我做self.MyCollection(newData);.

的问题:由于我可能已经过滤了数组或扩展了 UI 中的特定数组项,因此我不希望它每 30 秒重置一次。

我只想在项目实际更改时更新和重新渲染我的可观察数组。

任何人都知道如何避免在底层可观察数组更改时重置 UI - 或者 - 如何避免当只有 1 个或更少的底层项更改时整个可观察数组更改?

我不知道你到底想做什么,但官方的 knockoutjs 文档描述了一个类似的问题:http://knockoutjs.com/documentation/plugins-mapping.html

在第 Customizing object updating using “update” 节中:

您还可以通过指定 更新回调。它将接收它正在尝试更新的对象,并且 一个选项对象,与创建对象使用的选项对象相同 回调。

我通过简单地迭代 observableArray 中的项目并更改值(它们本身就是可观察量(来解决这个问题。这只更新了列表中的<li>,而不是整个<ul>

相关内容

  • 没有找到相关文章

最新更新