2013-10-19 60 views
0

我正在用木偶和RequireJS一個項目,我稍微感到困惑的一點,爲此,我一直沒能找到答案。我從Marionette wiki瞭解到,最好在其自己的模塊中創建一個全局事件聚合器,並將其列爲需要使用它的任何模塊的依賴關係。Requirejs和事件聚集

我的問題是,需要聽由給定模塊引發的事件模塊是否也需要被列爲依賴關係。例如,如果ModuleA觸發我需要ModuleB偵聽的事件,ModuleA是否需要將ModuleB作爲依賴項?要做到這一點似乎是不可取的,因爲事件發佈者不應該需要知道各個用戶,但我意識到這可能是採用了AMD,而不是木偶的模塊系統的缺陷。

任何澄清將是非常讚賞。

回答

0

您可以創建應用程序的主要事件彙總。像

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

所有模塊事情已經referense到App,並可以使用此通道。

在moduleA

在moduleB

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

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