Meteor JS模板订阅:即使在Template.instance()。subscriptionReady()之后也无法使用find()查询数据

时间:2017-07-27 01:34:35

标签: javascript meteor

我是Meteor的新手,我疯狂地试图让模板订阅工作。

即使Template.subscriptionsReady()返回true,我仍然得到"无法读取属性'找到'未定义"当试图找到()。获取集合。请关注相关的片段(如果我可以提供更多信息,请立即告诉我):

创建集合(lib / collections / jobs.js):

Jobs = new Mongo.Collection('jobs');

我的出版物(服务器)(server / publish.js):

Meteor.publish('jobs', function (userId) {
  return Jobs.find({
    $or: [
      {
        uIDHirer: this.userId
          },
      {
        uIDProvider: this.userId
          }
        ]
  });
});

我的订阅(客户端)(client / templates / calendar / calendar.js):

Template.Calendar.onCreated(function () {
  this.subscribe('jobs');
});

然后当我尝试搜索集合(客户端)(client / templates / calendar / calendar.js)时:

Template.Calendar.onRendered(function () {

  this.autorun(() => {

    if (Template.instance().subscriptionsReady()) {

          let data = Jobs.find({}).fetch();
    }

  });
});

Template.subscriptionsReady在准备好后正确返回1,但仍无法搜索集合。我错过了什么?我认为当subscriptionReady我能够找到()。fetch()集合时。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

我设法通过删除

解决了这个问题
import {
  Jobs
} from '../../../lib/collections/jobs.js';
来自calendar.js文件的

。不知道为什么,如果有人能帮我理解,我会感激不尽。

感谢@zim和@Jankapunkt的帮助!