Meteor pub / sub不工作

时间:2015-02-13 19:04:56

标签: javascript meteor

这是触发订阅的路线

   Router.route('listView', {
        path: '/',
        template: 'listViewTemplate',
        waitOn: function(){
            Meteor.subscribe('lists');
        }
    });

我的发布方法

Meteor.publish('lists', function(){
     return listCollection.find();
});

将它们呈现给视图的模板

    <template name='listViewTemplate'>
        <ul class='listViewList'>
            <li class='listViewEntry'>
                {{#each listCollection}}
                    <b>{{title}}</b>, {{description}}
                {{/each}}
            </li>
        </ul>
    </template>

当我通过命令行输入记录时,没有任何反应,但collection.find().fetch()确保它们被保留。

1 个答案:

答案 0 :(得分:2)

我希望你也添加了一个帮手:

Template.listViewTemplate.helpers({
    listCollection: function() {
        return listCollection.find();
    }
});

另外,请不要忘记在waitOn上返回一个值:

waitOn: function(){
   return Meteor.subscribe('lists');
}

使用waitOn时,您还需要loadingTemplate

<template name="loading">Loading</template>

并将loadingTemplate定义添加到路线中:

Router.route('listView', {
    path: '/',
    template: 'listViewTemplate',
    waitOn: function(){
        return Meteor.subscribe('lists');
    },
    loadingTemplate: 'loading'
});

如果您出现空白屏幕或其他内容,则可能需要在浏览器中查看Javascript错误日志以查看问题所在。