【发布时间】:2016-06-07 11:41:39
【问题描述】:
美好的一天!我在流星出版物中返回两个光标。有问题的代码在这里:
Meteor.publish('members.checkedIn', function() {
let organizationId = OrganizationService.getOrganizationId(this.userId);
if (!organizationId) return this.ready();
let timeclockQuery = {
organizationId: organizationId,
entityType: 'member',
timeOut: null
};
let timeclocks = Timeclock.find(timeclockQuery).fetch();
let memberIds = _.map(timeclocks, tc => {
return { _id: tc.entityId };
});
let memberQuery = { $or: memberIds };
return Timeclock.find(timeclockQuery).count() == 0 ?
this.ready() : [
Timeclock.find(timeclockQuery),
Member.find(memberQuery)
];
});
尽管在我的代码中我打卡了一个成员(也就是 timeOut 字段将返回一个比以前更少的结果,因为 timeOut !== null 页面上的内容不是反应性的。这意味着当我重新导航到这个页面,我看到了预期的变化,但它并没有发生“实时”。(一旦您订阅,会员查询似乎不会改变)。我应该将其切换为 2 个单独的订阅吗?或者你们中的任何一个都可以看看我到底做错了什么?
谢谢:)
额外清晰:了解会员是否“在商店中”的唯一方法是查询 timeOut 为空的时钟(也就是他们还没有离开)
【问题讨论】:
标签: javascript meteor