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将其混合到您自己的内容中即可。:)这可能是因为我编写嵌套的方式,但这也不允许我在删除它后再添加一个子对象。我早就试过了。