2014-03-06 71 views
1

這是我的應用程序的root中的router.js文件。出於某種原因,我一直收到一個undefined question在流星中調用collection.fineOne時得到未定義

Router.map(function() { 
    this.route('question_display', { 
     path: '/questions/:_id/:title?', 
     template: 'display_question', 
     yieldTemplates: { 
      'header': {to: 'header'}, 
      'footer': {to: 'footer'} 
     }, 
     waitOn : function() { 
      return Meteor.subscribe('questions'); 
     }, 
     before: function() { 
      var id = this.params._id; 
      var question = Questions.findOne({_id: id}); 
      console.log(question); 
      Router.go('postShow', {_id: id, title: question.title}); 
     } 
    }); 
}); 

我也得到了一些代碼在我publish.js文件位於/server/目錄

Meteor.publish('questions', function() { 
    return Questions.find({}); 
}); 

我不知道什麼是其實是錯誤的。我之前完成了這個工作,但是沒有問題,但是,現在當我嘗試查找文檔時,我一直未定義。順便說一下,這個文檔在我的數據庫中確實存在。

回答

0

所以你需要把你的Questions.findOne換成if (this.ready() == true)。基本上它需要等待訂閱準備就緒。