サーバー側のエラー(たとえば、検証エラー)が発生したときにモデルの変更をロールバックするにはどうすればよいですか?Backbone.jsサーバー側の検証と他のサーバー側のエラー
サーバーサイドで特定の検証が行われなければならない場合、backbone.js(Railsバックエンド)でこれを行う適切な方法は何ですか?
バックボーンモデルを保存すると、検証が失敗した場合(そのモデルのビューは更新されません)、適切なユーザーエクスペリエンスを提供するクライアント側の検証が実行されます。ただし、サーバー側の検証が失敗した場合、モデルとそのビューのすべては、サーバーへのPUTの前に(無効なデータで)すでに更新されています。
これにはいくつかの問題があるようです。
- モデルがサーバー側で検証される前に、すべてのビューが更新されます。 たとえば、ポップアップ編集 ダイアログを持つモデルのリストがある場合、リスト内のモデルは、Model.saveを呼び出した後で サーバ側の検証が行われる前に、無効な情報 で更新されます。 PUTされました。
- サーバがエラー(422エラーなど)を返した場合、モデルの「ロールバック」は発生しません。 unvalidatableデータはちょうどそこに芝生のように座っています。これは本当に悪いものです。
私はbackbone.jsを間違って使用していますか?この(非常に一般的な)シナリオを処理するよく知られた方法はありますか?私は、古い値などのマニュアルキャッシングをいくつか行うことができると理解していますが、それはまあまあの解決策です。
ありがとうございます!
これはここで答えられるようです:http://stackoverflow.com/a/10335668/1284283(1年後、そしておそらくより新しいバージョンのbackbonejs)。 – brightgarden