如何解雇已被另一个正确替换的视图

时间:2013-08-22 00:43:21

标签: backbone.js backbone-views

我有两个与同一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()

1 个答案:

答案 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