次の質問があります: Backbone/MarioneteJS で作成しているアプリケーションがあり、次の問題があります。おそらく単純であり、問題を複雑にしています。アプリケーションでは、いくつかのフィールドを編集して保存することができます。ユーザーがいくつかのフィールドを編集して別の場所に移動しようとすると、アプリケーションが変更を保存していないことをブロック/通知するようにしたいと考えています。過去に Backbone/MarioneteJS ではなく、次のような (疑似コードのような) 別の場所に移動する前にチェックしたグローバル変数を使用します。
var dirtyPage = false;
// when editing we do
if (editing) {
dirtPage = true;
}
// In another part of the code before navigating to another place
if (dirtPage) {
ShowMessage("Unsaved Changes");
} else {
Navigate(AnotherPlace);
}
以下のようにすればうまくいくことはわかっていますが、問題を解決するためのよりエレガントな方法があるかもしれません。