Marionette CompositeView - > LayoutView - > ItemView - ViewEvents

时间:2013-05-11 13:17:41

标签: javascript backbone.js marionette

我有一个使用布局的CompositeView,其中有几个区域为ItemView:

  var CompositeView = Backbone.Marionette.CompositeView.extend({
        itemView: Layout,
        template: _.template(...)
  });

  var Layout = Backbone.Marionette.Layout.extend({
    template:  _.template(...),
    regions: {
      mainRegion: ".main",
      listRegion: ".list"    
    },
    onRender : function () {
      this.mainRegion.show(new SingleView({model : this.model}));
    }    
  });

  var SingleView = Backbone.Marionette.ItemView.extend({
    template:  _.template(...),
    initialize: function(){
       // Forward view events - is there a better way?
        this.on('Module:submodule:action1', function(ev){
        app.vent.trigger("Module:submodule:action1", ev);
      });
    },
    triggers: {
      "click .ui_toggleComplete": "Module:submodule:action1",
    }
  });

这样就可以通过app.on('Module:submodule:action1',...)接收SingleView事件;

我想直接使用模型事件而不将它们转发到事件聚合器(app.vent)。

在我将Layout作为itemView实现之前,我可以做一些像CompositeView.on('itemview:Module:submodule:action1',...);这就是我想再次处理ItemViews事件的方式。 (我需要布局来显示更多的集合等......)

0 个答案:

没有答案