Backbone.js 取消绑定主干视图的子对象

Backbone.js 取消绑定主干视图的子对象,backbone.js,unbind,Backbone.js,Unbind,我有一个主干日历,每天都有很多选择。用户一次只能看到一天 因此,当用户选择转到下一天或前一天时,我会调用MyApp.Views.ShowDay重新绘制该天 ShowDay视图调用一些子视图MyApp.views.Hours。 当我创建新的一天时,我需要从旧的一天中取消时间绑定,但这只会导致错误 我尝试的方式是 MyApp.Views.Showday = Backbone.View.extend({ events: { "click div.change_day"

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

因此,当用户选择转到下一天或前一天时,我会调用
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 } }); MyApp.Views.Showday=Backbone.View.extend({ 活动:{ “单击div.change\u day”:“change\u day” }, 更改日期:函数(){ MyApp.Views.Hours.unbind();//我也尝试过off()、off、remove() } });
这不是解开孩子束缚的方法吗

您需要显式解除事件处理程序与事件的绑定。请参阅另一个SO问题的答案,特别注意
bindTo
unbindFromAll
功能:


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

谢谢德里克,我确实读过你关于Los技术的文章,关于你的绑定技术,但我希望能有更简单的东西。我现在尝试一下。不幸的是,没有比这更简单的了。主干网对此采取了一种不干涉的方法,让我们要么自食其果,要么自己编写额外的代码。FWIW:只需从那里复制并粘贴代码,然后使用u.extend将其混合到您自己的内容中即可。:)这可能是因为我编写嵌套的方式,但这也不允许我在删除它后再添加一个子对象。我早就试过了。