我试图通过当前登录用户显示帖子。我尝试了相同的方法,用于在相关帖子的页面下显示评论,但不适用于登录用户的帖子。
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})
}
});
})
如果上面的代码与它应该的方式不相符,那么任何有关如何继续的提示都将受到赞赏。这是一个仅用于学习目的的项目。
谢谢!
答案 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()});
}
});