用于Subsciption的Iron路由器上的waitOn挂钩:图像未加载

时间:2015-07-19 14:13:56

标签: meteor meteor-blaze

对于我的铁:路由器,我有一个waitOn钩子来订阅一个集合。每当我挂钩时,页面都无法从Public文件夹中加载图片,我不确定为什么会这样......

但每当我删除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});
});

2 个答案:

答案 0 :(得分:1)

无法加载的一个原因是waitOn永远不会返回。 waitOn将阻止,直到其所有订阅都被各自的发布商标记为已准备好。在这种情况下,如果comments不是字符串,postId发布商将失败 - 将抛出错误,永远不会调用this.ready()。我建议进一步调试:

  1. 确保this.params._id实际上是一个字符串
  2. 暂时从发布商处删除check(postId, String)

答案 1 :(得分:0)

尝试data: function() { return Posts.findOne(_id: this.params._id); }