我正在尝试使张贴页面成为一种路线,其中它使用iron:router做几件事


使用模板postPage
订阅singlePostuserStatus(显示单个帖子页面的作者的状态和信息),comments的发布。
抓取具有Comments字段的postId : this.params._id文档
Session.get('commentLimit')增加注释列表


这是我目前拥有的代码。



Router.js

Router.route('/posts/:_id', {
  name: 'postPage',
  subscriptions: function() {
    return [
      Meteor.subscribe('singlePost', this.params._id),
      Meteor.subscribe('userStatus'),
      Meteor.subscribe('comments', {
        limit: Number(Session.get('commentLimit'))
      })
    ];
  },
  data: function() {
    return Posts.findOne({_id:this.params._id});
   },
});




Publications.js

Meteor.publish('singlePost', function(id) {
  check(id, String);
  return Posts.find(id);
});

Meteor.publish('comments', function(options) {
  check(options, {
    limit: Number
  });
  return Comments.find({}, options);
});




Template.postPage.onCreated

Template.onCreated( function () {
  Session.set('commentLimit', 4);
});


Template.postPage.helpers

Template.postPage.helpers({
    comments: function () {
      var commentCursor = Number(Session.get('commentLimit'));
      return Comments.find({postId: this._id}, {limit: commentCursor});
    },
});


Template.postPage.events

Template.postPage.events({
    'click a.load-more-comments': function (event) {
      event.preventDefault();
      Session.set('commentLimit', Number(Session.get('commentLimit')) + 4)
    }
});




一切正常,但我发现一件事是不一致的。
这是我遇到的问题...


用户进入单个帖子页面并添加评论(一切正常)。
用户进入不同的单个帖子页面并添加评论(一切正常)。
这是问题开始的地方

用户在任何时候都可以进入另一条不是单个帖子页面的路线。

用户返回到单个帖子页面

评论未显示。
新评论将添加到数据库中,但仍不会显示

仅当执行meteor reset或手动删除MongoDB中的所有注释时,此问题才会消失。


有没有更好的方法可以编码我的路由和相关代码来阻止这种奇怪的行为发生?

甚至有更好的做法。

最佳答案

您的发布正在发布没有任何postId筛选器的评论。

您的助手,按postId过滤。也许发布的4条评论不属于当前公开的评论?

您能否尝试更新您的订阅

Meteor.subscribe('comments', {
    postId: this.params._id
}, {
    limit: Number(Session.get('commentLimit'))
})


和您的出版物

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


以便只发布相同的帖子评论?

10-04 21:31