我想实现一个自定义的vent事件聚合器实例,其中requirejs作为解释器here
查看此处和文档中的示例,我发现对vent.on和vent.trigger的调用主要用于视图。我的模式将是:
define(['marionette', 'vent'], function (Marionette, vent) {
return Marionette.ItemView.extend({
initialize: function () {
//bind
this.listenTo(vent, 'mycustomevent', this.myMethod);
//trigger
vent.trigger('viewinit', ...);
}
});
});
这种模式是否正确(视图负责管理聚合器事件)还是应该在模型和集合中使用它?
答案 0 :(得分:5)
事件聚合器实际上只是一个用于通信的发布/订阅系统。
关于“应该去哪里”,我在大多数情况下建议如下:
当然,有很多方法可以使用事件聚合器,但在处理视图时,上述方法适合大多数用例。
使用事件聚合器对于管理路由事件和删除重复也很有用(请参阅此处的“实施路由”部分:http://samples.leanpub.com/marionette-gentle-introduction-sample.pdf)