2011-06-18 7 views
13

backbone.js 'savesyncについての初心者向けの質問です。サーバはバックボーン同期にどのように応答する必要がありますか

  1. save/sync関数を呼び出した後、どのタイプの応答がサーバーから期待されますか?応答を受け取った後に特定の後処理が必要かどうか

  2. モデルがサーバー上に既に存在するかどうかをバックボーンはどのように認識しますか?ドキュメントからは、各モデルに "id"があるかどうかを確認するisNewがあることがわかります。だから、 "id"はサーバからのIDですが、 "cid"は各モデルのバックボーンが作るものです。正しい?モデルのidが、時にされているものもしそうなら、バックボーンを通知するためのサーバーのための一般的な手順はどのようなもの:

    a)のモデルが最初に作成して同期され、

    b)の後にモデルがフェッチされるとき、

    c)または、モデルにページが読み込まれたとき

ありがとうございました。ご質問

+3

私はドキュメントがこれについてもっと詳しく言うことができることに同意します。 – UpTheCreek

答えて

9

回答:

  1. あなたが戻ってサーバーからの応答を取得し、応答データは、解析方法を通過します。モデルの場合、parseメソッドは、モデルへの 'set'呼び出しで使用される属性ハッシュで応答する必要があります。コレクションの場合、パースメソッドは、コレクションによって維持されるモデルを表す属性ハッシュの配列で応答する必要があります。いずれの場合も、生の応答オブジェクトを使用するデフォルトの実装があります。あなたの応答が使用可能なハッシュを返さない場合は、必要な処理を行う独自の解析メソッドを用意する必要があります。

  2. どのようにisNewが動作するかについての文章には正しいですか?サーバーの応答では、parseメソッドでモデルのid属性に変換または使用する何らかのIDを指定する必要があります。サーバーの応答がオブジェクトIDを 'id'という属性として呼び出さない場合、変換が必要になります。 2番目の質問全体は、解析メソッドの適切な理解にかかっていると思います。このメソッドは、 'id'属性も含む属性ハッシュを返す必要があります。