1 つのアプローチは、エンティティ (モジュール/コレクション) を別のモジュールに配置し、さまざまなモジュールにそれらを要求させることです。
エンティティ モジュールの例 (コレクション定義とリクエスト ハンドラーを含む): https://github.com/davidsulc/marionette-gentle-introduction/blob/master/assets/js/entities/contact.js#L89
コレクションをリクエストする例 (7 行目): https://github.com/davidsulc/marionette-gentle-introduction/blob/master/assets/js/apps/contacts/list/list_controller.js#L7
あなたの場合、必要に応じて同じインスタンスを再利用できます。ただし、適度に新しいデータを表示するための何らかのメカニズムがあることを確認してください (つまり、サーバー上のコレクションを取得して最新のデータを取得します)。
これを行うには、javascript のクロージャ メカニズムを使用できます。
ContactManager.module('Entities', function(...){
var contacts = new Entities.ContactCollection(...);
contacts.fetch();
ContactManager.reqres.setHandler("contact:entities", function(){
return contacts;
});
ContactManager.commands.setHandler("contact:entities:update", function(){
return contacts.fetch();
});
});
次に、アプリでContactManager.request("contact:entities")
連絡先を取得するために使用し、ContactManager.execute("contact:entities:update")
.
リクエストとコマンドの違いは、基本的にセマンティックです。つまり、アプリケーションの別の部分からデータをリクエストすることと、実行する作業を注文することです。
リクエスト/レスポンスを使用すると、アプリケーションをより適切に設計できます (疎結合、カプセル化)。データを にアタッチするApp.SomeNamespace.mycollection
こともできます (特定のケースで実行しました) が、密結合につながり、カプセル化が壊れるため、大規模なアプリケーションにはお勧めしません。