在我的服务器文件夹中,我有一个文件,我正在执行以下操作
Meteor.publish("all_jobs", function(jobs) {
return Jobs.find();
});
Meteor.publish("user_jobs", function(user_id) {
return Jobs.find({userid: user_id}, {sort: {date: -1}});
});
在用户的博客页面上,我执行以下操作:
Session.set("userid", Meteor.userId());
Meteor.subscribe("user_jobs", Session.get("userid"));
Template.userJobs.helpers({
jobs: function(){
return Jobs.find();
}
});
在我的主页上,我需要所有的博文。所以我正在尝试访问Meteor.subscribe("all_jobs");
我现在遇到的问题是所有帖子都显示在我的用户个人资料中,而不是仅显示在用户发布的帖子上。
有什么建议吗?
由于
答案 0 :(得分:1)
当您为同一个集合进行多次订阅时,客户端上的results will be merged。订阅all_jobs
后,客户端现在将在其本地数据库中拥有所有作业,直到订阅停止。当您转到find
userJobs
模板中的某些作业时,您需要指出您真正感兴趣的作业。修改您的助手,如下所示:
Template.userJobs.helpers({
jobs: function() {
return Jobs.find(userid: Meteor.userId());
}
});
答案 1 :(得分:0)
发现问题。问题是我订阅了所有的出版物,因为我只是在我的代码中随机订阅了某个地方。
我通过在我的路线中添加waitOn
来修复此问题:
waitOn: function() {
return [
Meteor.subscribe("userJobs"),
];
},