客户端数据未在Meteor应用程序中更新

时间:2015-05-22 22:57:40

标签: meteor

我有一个发布的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。没有客户端/服务器端错误发生?

1 个答案:

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