我目前正在将一个大型主干应用程序迁移到 Marionette,并且很好奇关于什么是更好的模块之间中介活动设计的意见。
我有一个具有多个模块的应用程序,其中一个模块中的操作可能会导致其他模块中发生活动。
由于这些都与应用程序耦合,我可以简单地使用 Wreqr 接口,其中:
模块一:
someActivity: ->
App.vent.trigger("skyFalling")
模块 2:
initialize: ->
App.vent.on("skyFalling", @closeOrSomething)
模块 3:
initialize: ->
App.vent.on("skyFalling", @blinkRapidly)
或者最好在模块 1 中触发一个事件,应用程序(或绑定到应用程序的控制器)监听,然后直接在模块上调用“closeOrSomething”和“blinkRapidly”函数(因为应用程序知道所有它正在加载的模块)。
应用:
skyFallingEventHandler: ->
Module2.closeOrSomething()
Module3.blinkRapidly()