【发布时间】:2014-06-23 09:53:12
【问题描述】:
我正在使用dc.js 来呈现一个漂亮的数据集气泡图。底层 dc.js 是crossfilter。
我想用来自服务器的新数据顺利刷新我的图表。 This issue on Github 明确表示可以通过以下方式做到这一点:
- 从交叉过滤器中删除所有数据
- 添加新数据
- 致电
dc.redrawAll()。
我已经完成了这项工作,但要删除所有数据,您首先必须清除所有过滤器(因为crossfilter.remove 只会删除与当前过滤器匹配的记录)。
我想“记住”我的数据之前是如何过滤的,这样我可以在替换所有数据后再次重建过滤器。我愿意深入了解crossfilter 代码的内容,但任何指针都会有所帮助。
另外:如果有人知道基于唯一键更新交叉过滤器数据的方法,那将是金粉!
【问题讨论】:
-
你只是添加数据吗?然后我会说使用 crossfilter.add([data])。如果您还需要删除数据,我提供的内容不多,但您可能想看看这个问题,如果听起来方向正确,请发表评论:github.com/square/crossfilter/issues/109
-
@EthanJewitt 我没有添加 或 删除数据。我正在更新现有数据,每一行都是唯一键控的。或者
add是否可以根据密钥进行更新? -
Gotcha - 那么您确实需要删除旧数据并添加新数据(据我所知,无法更新现有密钥)。该功能目前并不存在,因为您必须删除所有过滤器才能删除您的数据。就个人而言,我认为这是需要在 Crossfilter 中解决的问题,并且关于如何解决这个问题有一些讨论,但我认为没有人有时间解决它。
标签: javascript dc.js crossfilter