0

我有两个与同一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和替换整个 dom 子树是否#applicationCanvas就足够了。你说什么?

谢谢

更新

我也undelegateEvents()打电话stopListening()

4

1 回答 1

0

好的,所以.. 根据官方骨干文档,我所做的一切是完全允许的!当然,这可能会随着 Backbone 的新版本而改变,所以请注意!

骨干的删除:

remove: function() {
  this.$el.remove();
  this.stopListening();
  return this;
},

我在没有调用 remove 的情况下做了什么:

view1.stopListening();
view1.undelegateEvents();
view2.render();           //<-- it will replace all the content
于 2013-08-22T01:14:57.020 回答