Skip to content

Instantly share code, notes, and snippets.

@variousauthors
Created October 3, 2013 13:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save variousauthors/6809872 to your computer and use it in GitHub Desktop.
Save variousauthors/6809872 to your computer and use it in GitHub Desktop.
Adding event management to a backbone.marionette Layout.
MyApp.Views.MasterDetailLayout = Backbone.Marionette.Layout.extend({
template: 'backbone/templates/master_detail_layout',
regions: {
master: "#master",
detail: "#detail"
},
initialize: function() {
console.log('MasterDetailLayout->initialize');
var self = this;
/* for each region the layout is managing, listen to the show
* event of that layout and call an event handler */
_.each(_.keys(this.regions), function(region_name) {
self.listenTo(self[region_name], 'show', self['on' + capitalize(region_name) + 'Show']);
});
},
onMasterShow: function(view) {
console.log('EVENT MasterDetailLayout->onMasterShow');
/* once the region is set up, listenTo some event from its view */
this.listenTo(view, 'graph:selected', this.eventFromMaster);
},
eventFromMaster: function() {
console.log('EVENT MasterDetailLayout->onDetailShow');
},
eventFromChild: function() {
console.log('EVENT MasterDetailLayout->WAT');
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment