Wouldn't it be easier to just destroy the old view and create a new one based on a different model? In this example, I pass the model itself to ItemViewOptions, and on the model I have some defining characteristics ... and since the model comes from the server, I can manipulate what happens in the view. This is for binding dynamic templates, but I think you could do something with events. This will require you to destroy everything that you have, and not to bandage everything.
node = Backbone.Model.extend nodes = Backbone.Collection.extend model: node url: -> Myapp.rooturl + "/api/node" initialize: (nodes) -> @fetch() nodeView = Backbone.Marionette.ItemView.extend initialize: (options) -> @template = "#" + options.model.attributes.nodetemplate + "-template" tagName: 'div' nodesView = Backbone.Marionette.CollectionView.extend itemView: nodeView itemViewOptions: @model
source share