2014-10-09 67 views
0

我有我的流星应用程序中的以下酒吧和亚铁在我的铁路由器,但是对于数据功能我没有得到任何回报,如果我改变我的发布到主题而不是公共主题那很好。但是这不可能是正确的,因为两次发布的内容相同,我得到流星消息。不知道我做错了什么。流星订阅和发布不返回数据

我想有根据网址

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

你publicTopics发布功能是错误的。如果你将一个参数传递给一个函数,你不会在函数内部使用this.permalinkUser,而只是使用permalinkUser。详细了解w3schools上的功能。

Meteor.publish('publicTopics' , function(permalinkUser,permalink) { 
    return Topics.find({$and:[{permalinkUser: permalinkUser},{permalink: permalink}]}); 
}); 

在您的主题发布函数中,您使用this.userId是因为它是Meteor对象的属性。

+0

是的,我的错误没有注意我复制了路由器数据函数的返回值。 – 2014-10-09 12:24:21

0

需要删除“this” - 我的错误是没有注意我复制了路由器数据函数的返回值。