d3.js – dc.js – 收听图表组渲染

前端之家收集整理的这篇文章主要介绍了d3.js – dc.js – 收听图表组渲染前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试重构我编写的一些自定义d3代码,通过引入dc.js来渲染一系列由交叉滤波器驱动的图表.

我的主要问题是我有一些dc.js不支持的图表类型(例如Sunburst Partition),我试图弄清楚如何与dc.js图表​​组一起渲染它们.

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

我知道每个单独的图表上都有听众,例如chart.on(“postRender”,函数(图表){…})但似乎没有办法挂钩重新渲染一组图表.是否有一个良好的模式可以实现这一目标?

解决方法

“正确”的方法是使用dc.registerChart在dc注册表中注册您的图表

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

不幸的是,这些东西目前没有记录,但实际上这里有很轻的耦合.您只需要在某个对象(您的图表或包装器)上实现.redraw()和.render(),并将其作为第一个arg传递.

将它放在与它应该响应的图表相同的组(第二个arg)中.

render()从头开始创建dom元素,redraw()在数据更改时更新它们.

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

添加了一个问题来记录这些东西:

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

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

编辑:感谢Jasmine Hegman,现在已经记录了这一点.见chartRegistry documentation.

猜你在找的JavaScript相关文章