我有一个带有几个子模块的木偶模块。父模块有自己的事件聚合器,我想在子模块中使用它来触发事件。我知道我可以使用应用程序的事件聚合器,但这些事件特定于父模块及其子模块,而不是整个应用程序。
我可以像这样在应用程序的事件聚合器中命名事件:
App.module("Parent.Child", function(self, App, ...) {
// somewhere in the child
App.vent.trigger("Parent:something");
});
但我真的不想走那条路。我认为为父模块及其子模块提供单个事件聚合器的想法更清晰。我喜欢从父级到应用程序以及子级到父级的单一接口......但也许我的想法是错误的?
我还可以从 App 对象访问父模块的事件聚合器,如下所示:
App.module("Parent.Child", function(self, App, ...) {
// somewhere in the child...
App.Parent.vent.trigger("something");
});
但我也不想那样做。我认为这会将 Child 模块和 App 耦合得太紧。
还有其他想法或选择吗?也许这些都是好主意,而我只是不明白其中的好处。