これは、イベント アグリゲーター パターンによって適切に提供されるもののように思えます。Derick Bailey は、この件に関して非常に優れた記事を投稿しました。ここで読むことができます。
イベント アグリゲーター パターン
Backbone.View を拡張して、すべてのビューでイベント アグリゲーター オブジェクトをこのように使用できるようにしました。
Backbone.View.prototype.eventAggregator = _.extend({}, Backbone.Events);
基本的に、モデル ビューが選択されると、view.eventAggregator がカスタム イベントをトリガーします。
sidebarView.eventAggregator.trigger('selected', this.model);
またはこの種の何か。バックボーン イベントを使用すると、トリガー関数を介してパラメーターをイベント リスナーに渡すことができます。上記の例では、特定のイベントでモデルを渡しました。
メイン ビューでは、このイベントをリッスンします。
mainView.eventAggregator.on('selected', myFunction, this);
myFunction: function(model) {
// Some code to execute - model is available through param
}
かなり使えるパターンです。mainView を閉じるときに、イベントのバインドを解除することを忘れないでください。:-)