use events.
define a global event bus:
Event.Dispatcher = _.clone(Backbone.Events);
and in your pagination view.
View.Pagination = Marionette.ItemView.extend({
template: paginationTpl,
events: {
'click .page': 'changePage'
},
changePage: function(e) {
//notify page change event
Event.Dispatcher.trigger("pageChanged", [pass any data you want to pass]);
}
});
in your panel view, listen to this event, and define how to handle it.
View.Panel = Marionette.ItemView.extend({
template: panelTpl,
events: {
'click .search_clear': 'clearSearch',
},
initialize: function() {
//listen to that event
this.listenTo(Event.Dispatcher, 'pageChanged', this.clearSearch);
},
clearSearch: function() {
//some important actions
}
});
I don't have any experience with Marionette. There may be easier ways to implement this with Marionette, but this is the pattern I've been using in my pure vanilla backbone applications.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…