【发布时间】:2013-09-10 23:11:38
【问题描述】:
我有一个带有多个子模块的木偶模块。父模块有自己的事件聚合器,我想在子模块中使用它来触发事件。我知道我可以使用应用程序的事件聚合器,但这些事件特定于父模块及其子模块,而不是整个应用程序。
我可以像这样在应用程序的事件聚合器中命名事件:
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 耦合得太紧。
还有其他想法或选择吗?也许这些都是好主意,但我只是不明白其中的好处。
【问题讨论】:
-
我没有使用事件,而是从子模块中调用了 App.Parent.something()
标签: javascript backbone.js marionette