【问题标题】:Requirejs and the Event AggregatorRequirejs 和事件聚合器
【发布时间】:2013-10-21 17:59:50
【问题描述】:

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

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

任何澄清将不胜感激。

【问题讨论】:

    标签: marionette


    【解决方案1】:

    您可以在 App 中创建主事件聚合。类似的东西

    App.channel = _.extend({}, Bacbone.Events);
    

    所有模块都有App的引用,可以使用这个频道。

    在模块A中

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

    在模块B中

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      相关资源
      最近更新 更多