【发布时间】:2015-01-11 12:08:18
【问题描述】:
我使用meteor、iron-router和d3。 d3用于根据数据反应性显示饼图,我在iron-router的数据函数中计算。所以,我希望 d3 在 dom 就位时运行。
但是,我不知道应该将 d3 代码放在哪里。我曾经把它放在我生成数据的数据函数中。但是,有时在 dom 未准备好时计算 data 函数(因此 d3 无法绘制图表)。
我想在 dom 完全渲染后运行 d3,并且该函数可以访问 data 函数的结果。我尝试使用挂钩 onAfterAction,但似乎此函数无法访问数据。我也尝试使用 Template..rendered,正如 stackoverflow 中的其他一些帖子所说。但是,渲染的函数似乎只运行一次,并且在数据发生变化时不会重新运行。我将渲染函数放在 Tracker.autorun 函数中,但它仍然只运行一次。
那么,有没有一个地方可以反应性地运行 d3 代码,可以访问渲染的 dom 以及数据字段?
谢谢。
【问题讨论】:
标签: d3.js meteor iron-router