2

パッチ 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 のおかげで、問題を示すフィドル。

4

1 に答える 1