У меня проблемы с использованием CompositeView от Marionette. Я визуализирую свою модель в своем CompositeView с помощью шаблона и хочу добавить к ней событие щелчка. Почему-то я не могу заставить события работать с помощью обработчика events: { "click": "function" }
в CompositeView... Что я делаю неправильно?
var FactsMenuItem = Backbone.Marionette.ItemView.extend({
template: tmpl['factsmenuitem'],
initialize: function() {
console.log('factsmenuitem');
},
onRender: function() {
console.log('factsmenuitem');
}
});
var FactsMenuView = Backbone.Marionette.CompositeView.extend({
template: tmpl['factsmenu'],
itemView: FactsMenuItem,
itemViewContainer: ".subs",
events: {
'click': 'blaat'
},
blaat: function() {
console.log('this is not working');
},
initialize: function() {
this.model.get('pages').on('sync', function () {
this.collection = this.model.get('pages');
this.render();
}, this);
},
onRender: function() {
console.log('render factsmenu');
}
});
var FactsLayout = Backbone.Marionette.Layout.extend({
template: tmpl['facts'],
regions: {
pages: ".pages",
filter: ".filter",
data: ".data"
},
initialize: function(options) {
this.currentPage = {};
this.factsMenu = new FactsMenu();
this.factsView = new FactsMenuView({model: this.factsMenu});
},
onRender: function() {
this.pages.show(this.factsView);
}
});
Редактировать: я удалил часть кода, из-за которого вопрос был неясен...
Проблема заключается в том, что события составного представления, не являющегося коллекцией (modelView ??), не запускаются. Я думаю, что это как-то связано с тем, как FactsLayoutView создает экземпляр составного представления...