我的Meteor应用程序中有以下酒吧,并且在我的铁路由器中,但是对于数据功能我没有得到任何回报,如果我将我的发布更改为主题而不是公共主题,那么它'很好。但这可能是正确的,因为那时有两次相同的发布,我得到一个关于它的流星消息。不确定我做错了什么。
我想根据网址
设置一组公共主题Meteor.publish('topics' , function() {
return Topics.find({$or:[{userId: this.userId},{collaboratorsIds: this.userId},{inviteeId:this.userId}]});
});
Meteor.publish('publicTopics' , function(permalinkUser,permalink) {
return Topics.find({$and:[{permalinkUser: this.permalinkUser},{permalink: this.permalink}]});
});
在我的铁路由器中我有以下
this.route('topicPublic', {
path: 'public/:permalinkUser/:permalink',
layoutTemplate: 'layoutApp',
waitOn: function(){
return [Meteor.subscribe('publicTopics', this.params.permalinkUser,this.params.permalink)]
},
data: function(){
return Topics.findOne({$and:[{permalinkUser: this.params.permalinkUser},{permalink: this.params.permalink}]});
}
});
答案 0 :(得分:0)
您的publicTopics发布功能有误。如果您将参数传递给函数,则不要在函数内使用this.permalinkUser,而只需使用permalinkUser。详细了解w3schools上的功能。
Meteor.publish('publicTopics' , function(permalinkUser,permalink) {
return Topics.find({$and:[{permalinkUser: permalinkUser},{permalink: permalink}]});
});
在您的主题发布功能中,您使用this.userId,因为它是Meteor对象的属性。
答案 1 :(得分:0)
需要删除“this” - 我的错误是没注意我从路由器数据函数复制了返回。