多くのset
メソッドを実行する変更イベントでモデルを更新するフォームがあります。
model.set({Name: newname });
Derick Bailey の素晴らしいmodelbinding pluginを使用すると、同じことが自動的に実現できます。
とにかく、フォームを変更すると、モデルは常に更新されます。しかし、実際にmodel.save();
呼び出しを実行する保存ボタンをクリックしない限り、これらの変更はデータベースに反映されません。
したがって、次の方法でフォームから移動した場合:
- ブラウザの戻るボタン
- 別のビューを開くナビゲーションの他のボタン
モデルは新しい名前で保存されましたが、データベースには保存されていないことがすぐにわかります (でリフレッシュするとF5表示されます) 。
この問題の有効な解決策を探しています。これまで私は考えてきました:
model.save()
フォーム要素の on any blur イベントを追加する(まだ、たった 1 つのモデルに対してサーバーへの多くの保存呼び出しが発生します *理想的ではありません)- フォームの終了時にセーブをハックしようとしています *理想的ではありません
- モデルを元の状態に戻そうとしています (モデルのリセットなど)。
*理想的ではありません: ユーザーはフォームから離れて移動し、データを保存したくないことを示しています。ここでは、とにかく保存をハックしようとしています。
モデルをフォームを変更する前の状態にリセットするにはどうすればよいですか?