2017-05-04 3 views
0

私のサーバー側では、Groupsのコレクションを公開しています。これは、別のServersコレクションと一致する公開グループに依存します。Meteorの公開日は前になります

Meteor.publish('groups', function() { 
    const servers = Servers.find({}); // simplified code 
    return Groups.find({serverId: {$in: servers}}); 
}); 

クライアントビューは、それに加入する:

self.autorun(() => { 
    self.subscribe('groups'); 
}); 

これは、一般的に正常に動作します。この問題は、Serversコレクションにサーバーを挿入すると、グループを更新する兆候がないため、この追加されたサーバーのGroupsはクライアントに公開されません。

これを処理する正しい方法は何ですか?

+0

を参照してくださいhttps://stackoverflow.com/questions/43167667/inconsistent-updating-of-meteor-template/43183145#43183145 =>サーバ側_reactive_出版を探します – ghybs

答えて

0

可能な簡単なアプローチは、Serversの別のパブリケーションを作成し、次にgroupsServers-依存するようにすることです。

// Server 
Meteor.publish("servers", function() { 
    return Servers.find({}, { fields: { _id: 1 } }); 
}); 

Meteor.publish("groups", function(serversIds) { 
    return Groups.find({ serverId: { $in: serversIds } }); 
}); 

// Client 
self.autorun(() => { 
    self.subscribe("servers"); 
}); 

self.autorun(() => { 
    const serversIds = Servers.find().map(server => server._id); 
    self.subscribe("groups", serversIds); 
}); 
関連する問題