dc.js – 监听图表组渲染

我试图重构一些自定义d3代码,通过引入dc.js来渲染一系列交叉过滤驱动的图表。

我的主要问题是,我有一些不支持dc.js的图表types(例如Sunburst分区 ),我试图找出如何将它们与dc.js图表​​组结合使用。

过滤单个dc.js图表​​将自动呈现/重绘属于同一个chartGroup的所有其他图表。 是否有可能以某种方式挂钩到全局重新渲染事件中,以便我可以同时重新绘制非直方图?

我知道每个图表上都有监听器,例如chart.on("postRender", function(chart){...})但似乎没有办法挂钩重新渲染一chart.on("postRender", function(chart){...})表。 有没有一个好的模式可以完成?

这样做的“正确”方法是在dcregistry中用dc.registerChart注册图表

https://github.com/dc-js/dc.js/blob/master/src/core.js#L91

不幸的是,这个东西目前还没有logging,但实际上这里有非常轻的耦合。 您只需要在某个对象(图表或包装器)上实现.redraw().redraw() ,并将其作为第一个参数传入。

把它放在同一组(第二个参数)和它应该回应的图表中。

render()从头创builddom元素, redraw()在数据更改时更新它们。

看起来你也可能需要实现一个虚拟的.filterAll()但这是一个疏忽。

我添加了一个问题来logging这些东西:

https://github.com/dc-js/dc.js/issues/676

如果遇到麻烦,请在这里或在这里发表评论。

编辑:这是现在logging,感谢茉莉花赫格曼。 请参阅chartRegistry文档 。

Interesting Posts