と の 2 つのコレクションがitems
ありworksheet
ます。
各ワークシートには、すべてのワークシート_iditem
を格納する配列フィールドがあります。items
このフィールドに基づいて、現在のワークシートのアイテムを公開します。出版物は次のようになります。
Meteor.publish("get_items", function(worksheetId) {
var currentWorksheet = Worksheets.findOne(worksheetId);
if (currentWorksheet.items) {
return Items.find({"_id":{$in:currentWorksheet.items}}, {});
} else {
console.log("no item to send");
return Items.find({"_id":null}, {});
}
}
return this.ready();
});
この出版物は、現在のページのアイアン ルーター コントローラーで購読されています。
問題は次のとおりです。
items
現在のワークシートフィールドを変更するために、テンプレート レベルのサブスクリプションで専用コンポーネントを使用します。このコンポーネントはブートボックスにロードされます。
現在のワークシートitems
フィールドを変更すると、メインの文書が更新されず、変更が反映されません。ただし、ページをリロードすると、変更が考慮されます。
別のコレクションに依存しているにもかかわらず、リアクティブな状態を維持するには、パブリケーションをどのように設計すればよいですか?