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