Fei*_*Fei 2 d3.js meteor iron-router
我使用meteor,iron-router和d3.d3用于根据数据反应显示饼图,我在铁路由器的数据函数中计算.所以,我希望d3在dom到位时运行.
但是,我不知道应该把d3代码放在哪里.我曾经把它放在我生成数据的数据函数中.但是,有时在dom未就绪时计算数据函数(因此d3无法绘制图表).
我想在dom完全渲染后运行d3,并且该函数可以访问数据函数的结果.我试图使用挂钩onAfterAction,但似乎这个函数无法访问数据.我也尝试使用Template.rendered,就像stackoverflow中的其他帖子所说的那样.但是,渲染的函数似乎只运行一次,并且在数据更改时不会重新运行.我把渲染的函数放在Tracker.autorun函数中,但它仍然只运行一次.
那么,有没有一个地方可以反应性地运行d3代码,可以访问渲染的dom以及数据字段?
谢谢.
您应该使用onRendered回调和模板自动运行.开箱即用不起作用1.0
,但有一个技巧 - 你可以通过使用Template.currentData这样在上下文更改后重新运行自动运行:
Template.myPictures.onRendered(function () {
this.autorun(function () {
var data = Template.currentData();
// use data with d3 here
});
});
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅此问题的结尾.
归档时间: |
|
查看次数: |
726 次 |
最近记录: |