骨干观点的解除束缚的孩子

时间:2012-03-08 19:15:16

标签: backbone.js unbind

我有一个骨干日历,每天都有很多选项。用户一次只能看到一天。

因此,当用户选择转到下一天或前一天时,我会调用MyApp.Views.ShowDay来重绘当天。

ShowDay视图会调用一些子视图MyApp.Views.Hours。 当我创造新的一天时,我需要解开旧时的工作时间,但这只会造成错误。

我试图这样做的方式是

MyApp.Views.Showday = Backbone.View.extend({
    events: {
             "click div.change_day":"change_day"
    },

    change_day: function(){
      MyApp.Views.Hours.unbind(); //I've tried off(), off, remove() as well

    }

});

这不是解开孩子的方法吗?

2 个答案:

答案 0 :(得分:1)

您需要从事件中明确取消绑定事件处理程序。请参阅另一个SO问题的答案,特别关注bindTounbindFromAll函数:

Backbone.js : repopulate or recreate the view?

答案 1 :(得分:0)

尝试MyApp.Views.Hours.remove()。这将从dom中删除视图及其元素,并在进程中删除任何事件处理程序。然后重新创建小时视图