2011-12-29 1 views
0

私は、属性titleだけを保存したいモデルがあります。1つの属性だけを保存する

myBook.model.save(['title']); 

問題はrequest.bodyだけではなく、関連する属性titleの、全体myBook.toJSON()オブジェクトであることです。これは私が試したものです。それは設計によるのですか、私は何か愚かなことをしていますか?

+0

[バックボーン - 保存する属性を指定する方法]の複製が可能ですか?(http://stackoverflow.com/questions/8637083/backbone-how-to-specify-attributes-to-save) –

答えて

2

これは仕様です。

if (!params.data && model && (method == 'create' || method == 'update')) { 
    params.contentType = 'application/json'; 
    params.data = JSON.stringify(model.toJSON()); // <-- jsonifies the entire model 
} 

この動作を無効にする方法はたくさんあります。今度は、とりわけんあなたのバックエンドへの変更を、永続化する

save通話Backbone.sync。モデルにsyncメソッドを与えることができます。この場合、Backboneのデフォルトのsyncの代わりに呼び出されます。あるいは、あなたが望むことをするためにBackbone.syncをオーバーライドできます。

しかし、ほとんどのサーバー側フレームワークでは、完全なJSONオブジェクトの受信と変更されたコンテンツの更新のみを処理できます。変更された属性をサーバーに送信する必要があるのはなぜですか?

サイドノート:saveの最初のパラメータは、['title']とは対照的に{title: newBookTitle}という属性のハッシュである必要があります。しかし、私はそれがおそらくちょっとしたサンプルのタイプミスであったと推測しています。

関連する問題