私は現在、大規模なバックボーン アプリケーションを Marionette に移行しており、モジュール間のアクティビティを仲介するためのより良い設計についての意見に興味があります。
あるモジュールでのアクションによって他のモジュールでアクティビティが発生する可能性がある複数のモジュールを持つアプリケーションがあります。
これらはすべてアプリケーションに結合されているため、Wreqr インターフェイスを簡単に使用できます。
モジュール 1:
someActivity: ->
App.vent.trigger("skyFalling")
モジュール 2:
initialize: ->
App.vent.on("skyFalling", @closeOrSomething)
モジュール 3:
initialize: ->
App.vent.on("skyFalling", @blinkRapidly)
または、アプリケーション (またはアプリに関連付けられたコントローラー) がリッスンし、モジュールで直接「closeOrSomething」および「blinkRapidly」関数を呼び出す Module1 でイベントをトリガーする方がよいでしょうか (アプリはすべてのロードしているモジュール)。
応用:
skyFallingEventHandler: ->
Module2.closeOrSomething()
Module3.blinkRapidly()