【发布时间】:2016-05-15 15:41:11
【问题描述】:
我正在解决一个问题,我想在仪表板中以图表(通过perak:c3)和表格(通过aslagle:reactive-table)的形式显示数据。我的问题是数据是从 MongoDB 中的集合中提取的,它的格式可以立即通过 c3 进行绘图,但需要转换为由响应表包使用的本地集合,如 this answer 中所建议的那样上一个问题。
当我更改要显示的数据集时,我希望更新图表和表格。然而,这需要更改本地集合中的值,这会减慢速度,因此不是平滑地重绘图表,而是页面冻结,然后显示新数据。
我创建了一个示例项目on GitHub here,因此可以轻松复制问题。如果你运行应用程序并在浏览器中选择一个数据集,你会明白我的意思
要查看我想在图表中保留的反应行为,请转到 client/templates/dashboard/dashboard.html 并简单地注释掉表格模板 {{> dashboardTable}}
现在更改数据集以查看图表如何平滑重绘。本质上,我试图确保模板dashboardChart 和dashboardTable 彼此独立呈现。
更新
遵循 Michael Floyd 的关于使用超时的建议有所帮助
Meteor.setTimeout(function(){createLocalCollection(data)},200);
虽然图表绘制得很顺利,但是当表格填满后,图表又会重新绘制。看起来它跳到了一些我无法理解的中间状态。 Here is a video 表达我的意思。
【问题讨论】:
-
该 HTML 注释并不能真正阻止呈现模板 - 请改用 blaze 注释:
{{!-- comment --}}。
标签: javascript meteor d3.js meteor-blaze meteor-helper