Google Chart(可视化)和Meteor Live HTML - 如何整合?

时间:2012-08-08 09:47:12

标签: google-visualization meteor

我正在尝试将谷歌图表应用到我的流星项目中。我特别想使用Meteor的Live HTML技术自动更新数据变化图表。

我有一些问题,我不知道如何妥善解决。我不是要求具体回答这些问题,而是在寻找最佳实践整合方法。我只发布问题以澄清我的问题:

1)为了创建一个谷歌图表,您总是需要一个附加到该站点的现有dom元素。使用Meteors方法声明一个随后附加到文档的html片段时,此方法无法正常工作。如果我尝试在片段中创建一个谷歌图表,则该元素尚不存在。

2)在预先创建dom元素然后更新元素(通过使用具有相同ID的appendChild)时,它们的图表会更新但是它们会在每次更新时变得更大吗?!

3)是否可以在包含单个div(例如id =“chartDiv”)的HTML中声明模板(例如name =“chartContainer”),直接在HTML中引用此模板并仍然创建一个实时html片段在javascript(例如Template.chartContainer = Meteor.ui.render(...))得到更新?对我来说,这不起作用......虽然我不确定这是解决我的问题的正确方法。

关于最佳实践的任何建议/示例都会很棒。

THX 彼得

1 个答案:

答案 0 :(得分:1)

您可以推迟图表初始化,直到屏幕上显示所需的dom元素(图表容器)。

<template name="chart">
  <div id="chart"></div>
  {{init}}
</template>

和JS:

Template.chart.init = function() {
  Meteor.defer(function(){
    // Chart initialization code goes here...
  });
}

这并没有解决实时更改数据问题,尽管我认为可以通过在需要时调用init函数来实现。