Backbone Marionette:如何使用preventDestroy:true

时间:2014-10-22 07:51:26

标签: backbone.js marionette

由于某种原因,我无法获得preventDestroy:true工作。 在我的示例中,当applicationsListView显示时,加载视图被删除 - 即使我传入preventDestroy为true。

  var loadingView = new App.Common.Loading.View();
  App.layout.mainRegion.show(loadingView);


  // Fetch the applications
  var fetchingApplications = App.request('application:entities');

  $.when(fetchingApplications).done(function(applications) {

    var applicationsListView = new List.Applications({
      collection: applications
    });

    App.layout.mainRegion.show(applicationsListView, { preventDestroy: true });

  });

1 个答案:

答案 0 :(得分:0)

它已从区域移除但未被销毁。

当你传递 preventDestroy:true 时,这意味着木偶并不会在之前的视图中调用destroy方法和事件。 Destroy方法提供ubinding事件并在子视图上调用destroy等等(https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.view.md#view-destroy)。

但是使用 preventDestroy:true 调用 show 仍然清除innerHTML并在区域中添加新视图(在backbone.marionette /中查看 attachHtml 方法SRC / marionette.region.js)。

如果您重复使用现有的加载视图,这会很有帮助。