0

ビューのバックボーン ビューを削除すると、EL も削除されますが、これは私にとっては少し問題です。私のビューのセットアップ方法は、ロードするPHPファイルがあることです

<div id="main_destinations" class="trip_container"></div>

そして、そのラッパーにはテンプレートがロードされています。私が抱えている問題は、そのビューを削除すると、そのラッパーも削除され、何をすべきかわからないことです。ラッパーを保持する方法はありますか?この空のラッパーを再作成してから、テンプレートをロードする必要がありますか。これを処理する最善の方法は何ですか?

私の理解では、ビューをロードしてイベントを添付する前にELがすでにDOMにある必要があるため、ビューを削除するとそのELが削除される理由がわかりません。

更新 - ビューを削除する方法:

if(typeof mysite.city != "undefined")
 {                      
  mysite.city.View.prototype.remove.call(cityViewValue);
 }

ビューをインスタンス化する方法:

cityViewValue = new mysite.city.View(page, country, city, city_id);
4

1 に答える 1

0

Backbone.View.Prototype.remove の定義は次のとおりです。

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

明確に示されているように、DOM から el 要素が削除されます。問題の別の解決策は次のとおりです。ビューで更新機能を作成し、ビューから削除する要素を削除して、ビューにテンプレートをロードします。

refresh: function() {
    this.$('.dynamic-data').remove(); //Assuming your element to be removed has class dynamic-data and is unique in this view. Otherwise we will write specific selector here
    var html = ; // Load template here
    $(this.el).append(html);
}
于 2013-03-11T13:41:48.663 に答える