我在使用Marionette的CompositeView時遇到了問題。我使用模板在我的CompositeView中渲染模型,並希望爲其添加一個單擊事件。不知何故,我無法使用CompositeView上的events: { "click": "function" }
處理程序來使事件工作......我做錯了什麼?Marionette的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);
}
});
編輯: 我刪除了一些代碼,提出的問題不清楚...
問題在於,該CompositeView中(模型視圖??)的非的CollectionView的事件不是被解僱。我認爲這與FactsLayoutView實例化複合視圖的方式有關...
抱歉不清楚......問題不是關於項目視圖中的事件(那些正在工作......),而是關於CompositeView上的事件(在事實菜單模板中......) – thomasjonas
@thomasjonas可以發佈一些你的模板的詳細信息?謝謝 –
非常抱歉,遲到的回覆很可笑。事實證明,頁面區域呈現/顯示的方式有些事情要做(參見我的回答)。 – thomasjonas