0

div同じ要素に関連付けられている 2 つのビューがあります。

MuSe.views.View1= Backbone.View.extend({
    el: "#applicationCanvas",
    ...

MuSe.views.View2= Backbone.View.extend({
    el: "#applicationCanvas",
    ...

レンダリングから始めてView1、ユーザーがインタラクションを終了したら、すべてを に置き換えたいと思いますView2

View1私は適切に却下したいと思います(div #applicationCanvasガベージコレクターがその仕事をすることができるようにバインドを解除します)そしてそうするために私はそれを呼びますundelegateEvents()remove()が必要な#applicationCanvasため、電話できませんView2undelegateEventsの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 に答える