2

Backbone.Marionette と RequireJS を使用しています。私のアプリケーション オブジェクトはすべて完全にモジュール化されています。

vent囲んでいる Marionette.Application インスタンスのオブジェクトを、アプリケーション全体のグローバル イベント バスとして使用したいと考えています。私ができるようにしたいのはvent、いくつかのサブ ItemView/CollectionView/whatever からイベントをトリガーすることですが、私が見る限り、サブビューで囲んでいるアプリ インスタンスへの参照はありません。そうですか?

実際のアプリ インスタンスを自分のビューに表示できることはわかってrequire()いますが (循環依存関係を自然に回避するように注意してください)、モジュールのカプセル化が壊れていることがわかります。ジェネリック ItemView がrequire()特定のアプリ モジュール/インスタンスに必要な場合、コード ベースにたまたまある他のアプリでその ItemView を使用することはできません。

Marionette.Application がインスタンス化された領域/レイアウト/サブビュー全体にそれ自体への参照を伝播することは理にかなっていますか? ventそうすれば、どの具体的な Marionette.Application 実装が親アプリであるかを知る必要なく、サブビューによってグローバル イベントをトリガーできますか?

それとも、何か基本的なことを見逃していますか?

ありがとう!

4

1 に答える 1

1

これは wiki でカバーされています: https://github.com/marionettejs/backbone.marionette/wiki/Using-marionette-with-requirejs

循環依存の回避に関するセクションを参照してください

于 2013-02-20T17:16:07.573 に答える