アプリケーションに非常に複雑なフォームがあり、ユーザーがわずかなフィールドしか変更できない更新機能があります。保存ボタンをクリックしてサーバーにデータを送信します。私のアプリケーションは、バックボーン、サイフォン、JQuery、アンダースコアを使用しています。バックボーンモデルで変更されたフィールドのみを送信
アプリケーション内の複数のページで使用できるこれらのライブラリのみを使用して、どのフィールドをサーバーに送信するかを制御する最適な方法は何ですか?再利用可能な機能のようなものが役立ちます。
model.changedAttributes()
期待どおり機能していないように見えました。ほとんどの場合、それは偽を返しています。サイフォンを使用してフォームデータをシリアル化し、APIに送信するアプリ固有のフォーマットに変換する次のコードがあります。
formSave: function(e) {
var data = changeToWriteApiFormat(Backbone.Syphon.serialize($(e.currentTarget).closest('form.event_form')[0]));
this.model.clear();
this.model.id = this.parentObj.model.id;
this.model.set(data);
if (this.model.isValid(true)) {
this.model.save(removeObjIndexCollection(data), {
url: this.model.url().replace(gc.readApiUrl, gc.publishApiUrl),
patch: true,
beforeSend: ToolsHelper.setPublishHeader,
success: function(model, response) {
$('#event_success').show();
$('#event_failure').hide();
},
error: function(model, response) {
$('#event_failure').show();
$('#event_success').hide();
}
}
}
:
編集:changedAttributesのここでの例を変更されたフィールドを検出するカスタムロジックで「保存」します。 –
私はいくつかのinbuiltソリューションを探しています。 – user1614862