db中的数据首先未定义,然后更改为实际数据

时间:2016-01-07 15:11:57

标签: meteor

我正在对节点集合进行查找,然后将信息存储在变量中。

然后我在console.logging这些数据以查看它的内容。问题是,我的数据在一瞬间保持一个空数组,然后一个新的console.log用一组数据完成。请参阅下面的代码:

Template.temperature.helpers({
    node() {
        let node = Nodes.find({_id:Session.get('selectedNode')});
        console.log(node);
        return '';
    }
});

我的控制台输出:

1: []
2: [Object]

这可能是什么原因?

1 个答案:

答案 0 :(得分:0)

在您的路由器中,在waitOn中订阅:

Router.route('/home', {
    waitOn: function() {
        return [
            Meteor.subscribe('nodes'),
        ];
    },
    action: function() {
        if (this.ready()) {
            this.render();
        }
    },
});

这将确保路由在执行路由之前等待订阅完成。它使用流星加载钩子,所以等待将利用你设置的任何加载屏幕或动画。