I have one ItemView, where I use clearSearch() function. I need to call the same function in another ItemView, so to keep it DRY I tried to call clearSearch(), but i didn't work.
View.Panel = Marionette.ItemView.extend({
template: panelTpl,
events: {
'click .search_clear': 'clearSearch',
}
clearSearch: function() {
//some important actions
}
});
View.Pagination = Marionette.ItemView.extend({
template: paginationTpl,
events: {
'click .page': 'changePage'
},
changePage: function(e) {
//others important actions
clearSearch();
}
});
I also tried to use View.Panel.clearSearch()
, but I've got this error:
Uncaught TypeError: Object function (){return i.apply(this,arguments)} has no method 'clearSearch'
.
With Marionette you can also use Triggers that fire events on that view. For example:
use events.
define a global event bus:
and in your pagination view.
in your panel view, listen to this event, and define how to handle it.
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.