Backbone.js 主干布局管理器子视图';s事件不';重新装填后不能工作

Backbone.js 主干布局管理器子视图';s事件不';重新装填后不能工作,backbone.js,backbone-events,backbone-boilerplate,backbone-layout-manager,Backbone.js,Backbone Events,Backbone Boilerplate,Backbone Layout Manager,我正在使用主干布局管理器样板。不幸的是,出现了一个相当令人沮丧的错误。我喜欢将项目列表呈现为insertView函数插入的子视图。第一次加载时,一切正常。但是重新加载后,单击事件不再起作用:(.我已经尝试手动调用TableItem视图上的delegateEvents(),但没有任何更改。我希望任何人都能给我一个线索 App.Views.Item = Backbone.View.extend({ template: "templates/item", tagName: "li", ev

我正在使用主干布局管理器样板。不幸的是,出现了一个相当令人沮丧的错误。我喜欢将项目列表呈现为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 {};
   }
});

我想您可能想在项目视图中添加一个
清理
函数,以便在layoutmanager删除视图时
取消删除
事件。我不知道这是否能解决您的问题,但这似乎是一个很好的做法

当你说重新加载后,你是指用浏览器的“重新加载”按钮重新加载页面吗?如果是,你首先是如何让它工作的


如果你能提供一个JSFIDLE的设置,或者给我们指出一个repo,这样我们就可以在我们的机器上测试它。确保你包括了路由器,这样我们就可以看到视图和包含它的布局是如何初始化的。

我也有同样的问题。我想每次你都必须手动委派事件在顶视图或任何子视图上调用渲染…对我来说效果很好,但我不确定这是最好的解决方案