我有一个发布的Meteor应用程序:
Meteor.publish('my_items', function() {
var selector = {owner_id: this.userId};
var items = ItemOwnership.find(selector, {fields: {item_id: 1}}).fetch();
var itemIds = _.pluck(items, 'item_id');
return Items.find({
_id: {$in: itemIds},
item_archived_ts: { $exists: false }
});
});
并订阅此:
Meteor.subscribe('my_items');
该应用程序允许用户将项目添加到'项目'集合,这是通过调用服务器方法完成的。服务器上的Items集合使用新记录更新,但客户端等效集合未显示新记录。我正在做什么,或者某种方式来调试这个有什么明显的错误吗?
P.S。没有客户端/服务器端错误发生?
答案 0 :(得分:0)
我找到了一种使用reywood:publish-composite Meteor软件包实现此目的的方法。以下是实现此目的的发布:
Meteor.publishComposite('my_items', {
find: function () {
var selector = {owner_id: this.userId};
return ItemOwnership.find(selector, {fields: {item_id: 1}});
},
children: [
{
find: function(IOrecord){
return Items.find({
_id: IOrecord.item_id,
item_archived_ts: { $exists: false }
});
}
}
]
});