Template.templatename.rendered не может вернуть какие-либо данные из mongodb

Я хотел бы знать, как я могу получить данные из mongodb в функции Template.templatename.rendered. Я попробовал событие click на другом шаблоне, и все работает нормально и возвращает нужные мне результаты. Но мне нужно отображать диаграмму при загрузке. Но я не мог получить данные из 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();
};

Помогите, пожалуйста? Заранее спасибо.


person You Hock Tan    schedule 10.06.2013    source источник


Ответы (1)


То, что шаблон отображается, не означает, что БД подключена.

Используйте Meteor.status().status для определения состояния соединения. Например, вы можете вообще подождать, чтобы отобразить шаблон pollChart, пока Meteor.status().status === 'connected'.

person Kristoffer K    schedule 10.06.2013
comment
Кроме того, вам нужно проверить готовность подписки с помощью метода .ready(): docs.meteor. com/#meteor_subscribe - person gabrielhpugliese; 10.06.2013