4

我想在这里用 requirejs 作为解释器来实现一个自定义的发泄事件聚合器实例

查看此处和文档中的示例,我发现对 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', ...);
        }
    });
});

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

4

1 回答 1

5

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

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

  • 视图触发事件(根据用户点击的内容,例如)
  • 控制器监听事件并对事件做出反应(例如删除模型)

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

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

于 2013-05-21T09:51:30.137 回答