我试图阻止用户通过表单对模型进行编辑,并轻松导航远离该更改。在开始撰写邮件时想想Gmail。
有人在GitHub上发布了一个描述相同情况的问题。 https://github.com/marionettejs/backbone.marionette/issues/186
此问题已关闭,因为人们建议您在尝试关闭视图之前检测更改。
但是这种方法的问题在于有几种方法可以关闭视图。后退按钮,单击新导航项,取消视图上的按钮。
由于已经存在onBeforeCLose回调,您认为可以从此处取消关闭。这根本不可能吗?
答案 0 :(得分:3)
现在,onBeforeClose
方法内置了您所要求的内容。在编写#186票时,基础设施不适用于此。事情发生了变化,它突然变成了实现这一点的一条线,所以我做了:)。
MyView = Marionette.View.extend({
onBeforeClose: function(){
// prevent the view from being closed
return false;
}
});
var v = new MyView();
v.close(); // view will remain open
答案 1 :(得分:1)
不幸的是,在撰写此回复时, onBeforeClose 并不会阻止区域内容被关闭。有一个未解决的问题https://github.com/marionettejs/backbone.marionette/issues/703。您可以通过添加评论来修复此问题。