删除后重新加载骨干视图?

时间:2013-03-11 12:52:02

标签: backbone.js backbone-views

删除骨干视图后,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);

1 个答案:

答案 0 :(得分: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);
}