Backbone Layout Manager Boilerplate を使用しています。残念ながら、かなりイライラするバグが発生しました。insertView 関数によって挿入されたサブビューとしてアイテムのリストをレンダリングするのが好きです。最初のロードでは、すべてが正常に機能します。しかし、リロード後、クリックイベントはもう機能しません:(。すでにTableItemビューでdelegateEvents()を手動で呼び出そうとしましたが、何も変わりませんでした。誰かが私に手がかりを与えてくれることを願っています.
App.Views.Item = Backbone.View.extend({
template: "templates/item",
tagName: "li",
events: {
"click .applyButton" : "apply",
"click .viewDetailsButton" : "showDetail"
},
serialize: function() {
return { table : this.model.toJSON() };
},
apply: function(ev) {
ev.preventDefault();
alert("apply button clicked");
},
showDetail: function(ev) {
ev.preventDefault();
var id = this.model.get("_id");
app.router.navigate("#events/"+ id, {trigger : true})
}
});
/*
* List View
*/
App.Views.List = Backbone.View.extend({
template: "templates/list",
tagNam: "ul",
className: "tableList",
beforeRender: function() {
var events = this.model.get("userEvents").get("hosting");
events.each(function(model) {
this.insertView(new App.Views.Item({ model : model }));
}, this);
},
serialize: function() {
return {};
}
});