2

我想知道如何在 Template.templatename.rendered 函数中从 mongodb 获取数据。我在其他模板上尝试了单击事件,一切正常并返回我想要的结果。但我需要的是在加载时渲染图表。但我无法从 mongodb 获取任何数据。

//poll.js

    var drawPollChart = function(){

    //returns data on other template methods except for 
    //Template.templatename.rendered
    var dist = getDistinctQuestionId();
    alert('dist:'+dist);
    var data_x =[];
    for(var i=0; i< 1; i++)
    {
          var count = getDataCount(dist[i]);
            var uniq = getDistinctResponseBucket(dist[i]);
            for(var j=0; j<uniq.length; j++)
            {
                //alert('data:' + count[uniq[j]] + ", label:" + uniq[j]);
                data_x.push({
                    data : count[uniq[j]], 
                    label: uniq[j]
                });
            }
    }

Template.pollChart.rendered = function() {
    //can't draw a thing cause can't get any data from mongodb
    drawPollChart();
};

请帮忙?提前致谢。

4

1 回答 1

0

仅仅因为模板被渲染并不意味着数据库已连接。

使用 Meteor.status().status 来检测连接的状态。例如,您可以等到 Meteor.status().status === 'connected' 后再渲染 pollChart 模板。

于 2013-06-10T09:43:03.400 回答