如何将任何JavaScript图形库与MeteorJS数据一起使用

时间:2015-12-16 22:43:45

标签: meteor meteor-blaze

我想构建一个小型MeteorJS应用程序,其中包含一个条形图,需要在底层MongoDB数据发生变化时进行更新。 通常,大多数图形库依赖于JSON数组作为其本地"数据源。如果我必须使用这样的数组,我怎样才能将它与Mongo集合相关联,并在集合发生变化时随时更新数组值?

1 个答案:

答案 0 :(得分:0)

在查看https://forums.meteor.com时,我找到了一个完整的工作示例,它说明了我的问题的解决方案。以下是特定主题:https://forums.meteor.com/t/solved-how-to-draw-bar-chart-using-highcharts-and-mongodb-data-reactively/5156/17,其中用户jhuenges对以下meteorpad示例提示:http://meteorpad.com/pad/iNfXQwMW3RwrokTe8/Chart

此解决方案的关键要素: 1)数据'图表的元素被定义为一个变量,其值来自Mongo游标:

series: [{
            name: 'No. of Patients',
            data: data

        }]

Template.agecolumn.onRendered(function() {  
     Tracker.autorun(function () {
    var data = Data.find({symptoms: {$in: ["Vomiting"]}}).fetch();

这种组合可确保在任何时候更新基于服务器的MongoDB时,“数据”中的值都是“数据”。刷新,并重新呈现图表。

我已经通过将我的RoboMango实用程序连接到MongoDB的服务器端实例并直接从数据库更改/删除值来测试了这一点。 只要将任何此类更改应用于服务器端Mongo,前端图表就会自动刷新以反映更改,这正是我所寻找的。 正如Christian Fritz在回答我最初的问题时建议的那样,Tracker.autorun被用来促进预期的结果。