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文档 。