Requirejs和Event Aggregator

时间:2013-10-19 22:25:51

标签: marionette

我正在与Marionette和RequireJS合作开展一个项目,并且在一点上我有点困惑,因为我无法找到答案。我从Marionette wiki中了解到,最好在自己的模块中创建一个全局事件聚合器,并将其列为需要使用它的任何模块的依赖项。

我的问题是,需要监听给定模块引发的事件的模块是否也需要列为依赖项。例如,如果ModuleA触发了我需要ModuleB监听的事件,那么ModuleA是否需要将ModuleB作为依赖项?这样做似乎是不可取的,因为事件发布者不需要知道各种用户,但我意识到使用AMD而不是Marionette的模块系统可能是一个陷阱。

任何澄清都将非常感激。

1 个答案:

答案 0 :(得分:0)

您可以在App中创建主要事件聚合。像

这样的东西
App.channel = _.extend({}, Bacbone.Events);

所有模块都可以参考App,并且可以使用此频道。

模块A中的

App.channel.trigger("someEvent", data);

在moduleB中

App.channel.on("someEvent", function(data){ ... })