Meteor订阅相同的集合2个不同的发布函数,只有一个在给定时间工作

时间:2015-02-01 16:34:52

标签: meteor

我有一个流星集合

channels = new Meteor.Collection('channels');文件夹

collections

并在侧边栏导航中使用了2个发布功能channelsNames来显示可用频道,当我转到频道设置时,我还使用channelSettings来获取此特定频道的设置。通过铁路由器

//Publish specfic channel settings
Meteor.publish("channelSettings", function(channel){
  check(channel, String);
  return channels.find({userId: this.userId, 'channels.name': channel}, {fields: {'channels.$': 1}} );
});

//Publish all connected channels names
Meteor.publish("channelsNames", function() {
  return channels.find({userId: this.userId, 'channels.name': {$exists: true}}, {fields: {'channels.name': 1}});
});

问题在于客户端您无法订阅这两个客户端只有当我在控制台中channels.findOne时才会在客户端集合上看到第一个订阅我可以验证我不是如果首先订阅channelsname,请参见channelsSettings,反之亦然

Meteor.subscribe('channelSettings', 'ebay');
Meteor.subscribe('channelsNames');

该集合看起来像这样

{
 _id:  2,
 userId: 123,
 channels: [ 
  {name: "channel1", inventorySync: false, inventoryMaxqty: 0, inventoryMinQty: 0},
  {name: "channel2", inventorySync: false, inventoryMaxqty: 0, inventoryMinQty: 0}
 ]
}

这是预期的行为吗?我认为meteor应该将两个数据合并到一个集合中。我怎么能这样做?

0 个答案:

没有答案