2

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 {};
   }
});
4

1 に答える 1