2014-10-09 68 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」 - 我的錯誤是沒有注意我複製了路由器數據函數的返回值。