0

Backbone.jsのドキュメントによると、Model-parseは次のことを行います。

parseは、モデルのデータがサーバーからフェッチおよび保存で返されるたびに呼び出されます。

すでにロードしたモデルを拡張するには、を使用しますModel.parse()。これを実現するfetchには、を使用してデータを追加リクエストし、そのデータを使用して既存のモデルにプロパティを追加します。

例:

フェッチオブジェクトは{age: 19}
、パーサーが{age: 19, isAdult: true}

保存要求を実行すると、PUT要求には、不要な他のパラメーター(isAdultなど)もあります。元のモデルが欲しいのですが(PUTリクエストに追加のパラメーターはありません)。

バックボーンで私の目標を達成するための最良の方法は何ですか?

4

1 に答える 1

2

私があなたの質問を正しく理解していれば…。

バックボーンが保存を使用してサーバーと通信すると、モデルの完全な表現が送信されます。ドキュメントがそれを置いたように:

属性ハッシュ(セット内)には、変更する属性が含まれている必要があります(言及されていないキーは変更されません)が、リソースの完全な表現がサーバーに送信されます

したがって、デフォルトの動作は完全なモデルを送信することです。独自のロジックを実装する場合は、syncメソッドをオーバーライドする必要があります。拡張されたバックボーンコードを少し掘り下げると、上記のコメントが表示されますsync

//この関数をオーバーライドして、Backboneが
//モデルをサーバーに永続化する方法を変更します。リクエストのタイプと問題のモデルが渡されます。

開始点として、同期のデフォルトの実装を使用します。

于 2012-05-17T21:45:49.823 に答える