我有两个与同一div
元素关联的视图:
MuSe.views.View1= Backbone.View.extend({
el: "#applicationCanvas",
...
MuSe.views.View2= Backbone.View.extend({
el: "#applicationCanvas",
...
我从呈现View1
开始,当用户终止互动时,我想用View2
替换所有内容。
我想正确地解除View1
(从div
#applicationCanvas
取消绑定,以便垃圾收集器可以完成其工作)并且这样做我打电话给undelegateEvents()
在上面。我无法致电remove()
,因为#applicationCanvas
我需要View2
。我想知道是否调用undelegateEvents
并替换#applicationCanvas
的整个dom子树就足够了。你说什么?
由于
以及undelegateEvents()
我也打电话给stopListening()
答案 0 :(得分:0)
好的,所以...根据the official backbone documentation,我所做的完全是允许的!当然,这可能会随着Backbone的新版本而改变,所以抬起头来!
Backbone的删除:
remove: function() {
this.$el.remove();
this.stopListening();
return this;
},
我做了什么而没有打电话删除:
view1.stopListening();
view1.undelegateEvents();
view2.render(); //<-- it will replace all the content