gpt4 book ai didi

d3.js - Meteor,d3代码放在哪里?

转载 作者:行者123 更新时间:2023-12-02 00:41:49 24 4
gpt4 key购买 nike

我使用meteor、iron-router和d3。 d3 用于根据我在iron-router 的数据函数中计算的数据 react 性地显示饼图。所以,我希望 d3 在 dom 就位时运行。

但是,我不知道应该将 d3 代码放在哪里。我曾经把它放在生成数据的数据函数中。然而,有时数据函数是在dom还没有准备好时计算的(因此d3无法绘制图表)。

我想在dom完全渲染后运行d3,并且该函数可以访问数据函数的结果。我尝试使用钩子(Hook) onAfterAction,但似乎该函数无法访问数据。我还尝试使用 Template..rendered,正如 stackoverflow 中的其他一些帖子所说。然而,渲染的函数似乎只运行一次,并且当数据发生变化时它不会重新运行。我将渲染的函数放在 Tracker.autorun 函数中,但它仍然只运行一次。

那么,是否有一个地方可以 react 性地运行 d3 代码来访问渲染的 dom 以及数据字段?

谢谢。

最佳答案

您应该使用onRendered回调 template autorun 。开箱即用,不适用于 1.0,但是有一个技巧 - 您可以使用 Template.currentData 在上下文更改后重新运行自动运行。像这样:

Template.myPictures.onRendered(function () {
this.autorun(function () {
var data = Template.currentData();
// use data with d3 here
});
});

更多详情见this issue文末.

关于d3.js - Meteor,d3代码放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26924253/

24 4 0