有人可以看到为什么路线没有订阅该出版物。 Profiles = new Meteor.Collection('profiles');
mongo数据库确实包含此集合中的文档,但浏览器控制台在“个人档案”集合中的计数仍为0。
我试图告诉路由器,“订阅用户配置文件发布,当你准备好时,渲染'配置文件'模板。我也命名了路由'配置文件'。
现在我注意到在输入sub = Meteor.subscribe('user-profile');
然后sub.ready();
后,我得到了收集的计数。否则,路径未订阅。之前没有发生过此行为。
LIB / router.js
Router.plugin('loading', {loadingTemplate: 'Loading'});
Router.route('user/profile', {
name: 'profile',
waitOn: function () {
// return one handle, a function, or an array
return Meteor.subscribe('user-profile');
},
action: function () {
// this.ready() is true if all items returned from waitOn are ready
if (this.ready())
this.render('profile');
else
this.render('Loading');
}
});
server.js:
Meteor.publish('user-profile', function () {
return Profiles.find({userId: this.userId});
});
userId是“个人档案”集合中的一个字段。此配置文件doc id存储在user.profile.experiences数组中以供参考。
答案 0 :(得分:1)
Meteor.userId
是一个函数,它返回_id
,而不是_id
本身,并且无论如何都无法通过DDP传递函数。它应该是:
waitOn: function () {
return Meteor.subscribe('user-profile', Meteor.userId());
}