D3.js dc.js-正在侦听图表组渲染

D3.js dc.js-正在侦听图表组渲染,d3.js,dc.js,crossfilter,D3.js,Dc.js,Crossfilter,我正在尝试重构一些定制的d3代码,通过引入dc.js来呈现一系列交叉过滤器驱动的图表 我的主要问题是,我有一些dc.js(例如a)不支持的图表类型,我正试图找出如何将它们与dc.js图表组一起呈现 过滤单个dc.js图表将自动呈现/重画属于同一个图表的所有其他图表。是否有可能以某种方式钩住全局重新渲染事件,以便我可以同时重新绘制非dc图表 我知道每个单独的图表上都有监听器,例如,chart.on(“postRender”,function(chart){…}),但似乎没有办法重新呈现一组图表。是

我正在尝试重构一些定制的d3代码,通过引入dc.js来呈现一系列交叉过滤器驱动的图表

我的主要问题是,我有一些dc.js(例如a)不支持的图表类型,我正试图找出如何将它们与dc.js图表组一起呈现

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

我知道每个单独的图表上都有监听器,例如,
chart.on(“postRender”,function(chart){…})
,但似乎没有办法重新呈现一组图表。是否有一个好的模式可以实现这一点?

正确的方法是将图表注册到dc注册表中

您只需要在某个对象(图表或包装器)上实现
.redraw()
.render()
,并将该对象作为第一个参数传递

将其与应响应的图表放在同一组(第二个参数)

从头开始创建dom元素,并在数据更改时更新它们


根据图表的使用方式,您可能还需要实施和

谢谢!这似乎是最干净的方式。我只想在一个随机的dc图表上听重画事件,就像在dc.js用户组中有人建议的那样,但这确实有点黑客;-)我将试一试,让您知道它是如何运行的。我相信当图表组上的缩放级别/焦距范围重置时,也有
.refocusAll()
功能。如果您想参与取消图表注册,则需要提供返回某种guid的
.anchorName()
函数。我只是用
Math.random()*1000000生成一个随机整数,请您也提供一个例子好吗?很难找到一个…@user3329081,很抱歉回复太慢。此外,您还可以查看一些非常简单的小部件的源代码,例如,尽管您不需要从任何dc.js基类派生来与dc.js兼容。