由于某种原因,我无法获得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 });
});
答案 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)。
如果您重复使用现有的加载视图,这会很有帮助。