这是触发订阅的路线
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()
确保它们被保留。
答案 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错误日志以查看问题所在。