我想知道如何从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();
};
请帮忙吗?提前谢谢。
答案 0 :(得分:0)
仅仅因为渲染模板并不意味着DB已连接。
使用Meteor.status()。status来检测连接状态。例如,你可以等到渲染pollChart模板,直到Meteor.status()。status ==='connected'。