2013-05-21 53 views
4

我想实现与requirejs作为解释器here哪里使用骨干牵线木偶的事件聚合器?

望着这里的例子,并在文档中的自定义发泄事件聚合例如,我有seent,调用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', ...); 
     } 
    }); 
}); 

这是正确的模式(视图是负责管理聚合事件)或者我应该使用它的模型和集合?

回答

5

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

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

  • 意见触发事件(根据用户点击的东西,如)
  • 控制器监听和反应到事件(例如删除模型)

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

使用事件聚合也是有用的管理路由事件和消除重复(见“实现路由”在这里:http://samples.leanpub.com/marionette-gentle-introduction-sample.pdf

+0

也许你可以分享的说法有一定的了解http://stackoverflow.com/questions/18022150/marionette-event-aggregator-vs-backbone-router ;-)谢谢。周末愉快!! –

+0

P.S.我也赞成你的回答 –

+0

我已经加入了我对这个问题的看法,但在(链接的)书籍的示例中有更详细的解释。 –