2015-07-19 43 views
0

對於我的鐵:路由器,我有一個waitOn掛鉤訂閱的集合。每當我把鉤上,頁面無法加載從公用文件夾的圖片和我不知道這是爲什麼.....waitOn鉤:圖片不加載

但每當我去掉勾WaitOn,圖片加載一次。在路由器

認購

Router.route('/postPage/:_id', { 
    name: 'profile', 
    waitOn: function() {return Meteor.subscribe('comments', this.params._id) ;}, 
    data: function() { return Posts.findOne(this.params._id); } 
}); 

出版

Meteor.publish('comments', function(postId) { 
    check(postId, String); 
    return Comments.find({postId: postId}); 
}); 

回答

1

一個原因可能無法加載的是,waitOn永遠不會回來了。 waitOn將阻塞,直到它的所有訂閱都打上了各自的出版商爲準備。錯誤將被拋出this.ready()將永遠不會被調用 - 在這種情況下,如果postId不是一個字符串的comments出版商會失敗。我建議通過進一步調試:

  1. 確保this.params._id實際上是一個字符串
  2. 暫時從出版商刪除check(postId, String)
+0

檢查(postid,字符串)是確保這一點。 params._id實際上是一個字符串?沒有? –

+0

對不起我本來應該更清晰 - 我的意思是你應該仔細檢查你實際上是發送一個字符串 - 即確保'this.params._id'不是'undefined'。在終端或瀏覽器控制檯中是否顯示錯誤? –

0

嘗試data: function() { return Posts.findOne(_id: this.params._id); }

+0

不工作這一項,對不起 –