骨干牵线木偶中何处使用事件聚合器?

时间:2013-05-21 07:47:40

标签: backbone.js marionette backbone-events

我想实现一个自定义的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', ...);
        }
    });
});

这种模式是否正确(视图负责管理聚合器事件)还是应该在模型和集合中使用它?

1 个答案:

答案 0 :(得分:5)

事件聚合器实际上只是一个用于通信的发布/订阅系统。

关于“应该去哪里”,我在大多数情况下建议如下:

  • 查看触发事件(根据用户点击的内容,例如。)
  • 控制器监听并响应事件(删除模型,例如)

当然,有很多方法可以使用事件聚合器,但在处理视图时,上述方法适合大多数用例。

使用事件聚合器对于管理路由事件和删除重复也很有用(请参阅此处的“实施路由”部分:http://samples.leanpub.com/marionette-gentle-introduction-sample.pdf