2015-07-19 58 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

不工作这一项,对不起 –