显示当前用户的帖子 - Meteor

时间:2015-07-30 23:18:28

标签: meteor

我试图通过当前登录用户显示帖子。我尝试了相同的方法,用于在相关帖子的页面下显示评论,但不适用于登录用户的帖子。

Template.myPosts.helpers({
    posts: function () {
        selector = {userId: this.userId};
        options = {sort: {createdAt: -1}};
        return Posts.find(selector, options);
    }
});

我也在router.js(安装了铁路由器包)中尝试了下面的代码:

this.route('myPosts', {
        path:'/my-posts',
            data:function(){
                return Posts.find({userId: this.userId})
        }             
                            });
})

如果上面的代码与它应该的方式不相符,那么任何有关如何继续的提示都将受到赞赏。这是一个仅用于学习目的的项目。

谢谢!

2 个答案:

答案 0 :(得分:1)

您确定助手的上下文有userId属性吗?也许你想要这个:

Template.myPosts.helpers({
  posts: function () {
    selector = {userId: Meteor.userId()};
    options = {sort: {createdAt: -1}};
    return Posts.find(selector, options);
  }
});

还值得尝试:在Web控制台中Posts.find({userId: Meteor.userId()}).fetch()查看您是否有任何此类帖子实际发布到客户端。

答案 1 :(得分:0)

您的出版物和订阅似乎有问题。确保您已正确发布和订阅。

/server/publications.js

Meteor.publish("postsPub", function (selector, options) {
  return Posts.find(selector, options);
});

在您的路由器上:

this.route('myPosts', {
  path:'/my-posts',
    waitOn : function () {
      selector = {userId: Meteor.userId()};
      options = {sort: {createdAt: -1}};
      return Meteor.subscribe('postsPub', selector, options);
    },
    data:function(){
      return Posts.find({userId: Meteor.userId()});
    }
});