Backbone.Marionette と RequireJS を使用しています。私のアプリケーション オブジェクトはすべて完全にモジュール化されています。
vent
囲んでいる Marionette.Application インスタンスのオブジェクトを、アプリケーション全体のグローバル イベント バスとして使用したいと考えています。私ができるようにしたいのはvent
、いくつかのサブ ItemView/CollectionView/whatever からイベントをトリガーすることですが、私が見る限り、サブビューで囲んでいるアプリ インスタンスへの参照はありません。そうですか?
実際のアプリ インスタンスを自分のビューに表示できることはわかってrequire()
いますが (循環依存関係を自然に回避するように注意してください)、モジュールのカプセル化が壊れていることがわかります。ジェネリック ItemView がrequire()
特定のアプリ モジュール/インスタンスに必要な場合、コード ベースにたまたまある他のアプリでその ItemView を使用することはできません。
Marionette.Application がインスタンス化された領域/レイアウト/サブビュー全体にそれ自体への参照を伝播することは理にかなっていますか? vent
そうすれば、どの具体的な Marionette.Application 実装が親アプリであるかを知る必要なく、サブビューによってグローバル イベントをトリガーできますか?
それとも、何か基本的なことを見逃していますか?
ありがとう!