パッチ HTTP メソッドを使用してバックボーンのフォーム経由でモデルを保存する実装について、大きな疑問があります。
私の問題は、サーバーがエラーを返した場合、次の保存時にバックボーンが空のオブジェクトをデータとして送信することです。これは、値がモデルに既に設定されているため、再度変更されないためです。
私のコードは次のようになります。
var data = $('#form').serialize();
this.model.set(data);
var attr = (this.model.hasChanged()) ? this.model.changedAttributes() : {};
this.model.save(attr,{patch: true, wait: true, error: function(model, xhr, options){
model.set(model.previousAttributes(),{silent: true});
}});
モデルの属性を以前の値に再設定することでこれを「解決」することができましたが、私には適切ではありません...このケースを管理するためのより良い方法はありますか? 可能であれば、毎回フォーム データ全体をサーバーに送信することは避けたいと思います。ありがとう。
編集: Creynders のおかげで、問題を示すフィドル。