Meteor.publish - >所有数据仍然可用

时间:2015-04-04 23:24:59

标签: meteor publish-subscribe meteorite

在我的服务器文件夹中,我有一个文件,我正在执行以下操作

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");

我现在遇到的问题是所有帖子都显示在我的用户个人资料中,而不是仅显示在用户发布的帖子上。

有什么建议吗?

由于

2 个答案:

答案 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"),
    ];
},