2012-03-14 1 views
13

私はBackbone.jsライブラリが全く新しく、ドキュメント全体を読んで、ライブラリの動作を理解しています。以下のケースでは、サーバーからの応答は、バックボーンを使用して設計されたアプリケーションの適切な作業のために(ストローク/コードを追加することなく)どうしたらよいでしょうか。backbonejsを使い始める前に - サーバが返すべきこと

以下
window.person = Backbone.Model.extend({ 
    defaults: { 
     name: "", 
     email: "[email protected]" 
    }, 
    urlRoot: "PersonApp" 
}); 
  1. ようなモデルは、サーバの復帰が検証がmodel.save()

  2. model.fetch()

  3. 何のために何をJSONすべきサーバの復帰のためによくを行ってきましたどのようなJSONを想定しなければならないと仮定しますJSONはサーバーをに戻す必要があります

答えて

15

あなたはBackbone.Sync documentationで見てみると、それはあなたがサーバー上で変更した属性を持つ要求に応じるべきだと述べています。

  1. model.saveのためのJSON要求は保存の一部として変更されている属性を返す必要があります。だからあなたの質問に答えるために

    。作成の場合、これはモデル全体に​​なります。変更されたフィールドだけを更新します。 (あるいは、あなたが怠け者であり、クライアント側のモデル全体を更新する気にならない場合は、モデル全体を返すことができます)。

    ので、許容できる応答がちょうどJSON形式でモデルを返す必要があります{ 'name' : 'a name', 'email' : '[email protected]' }

  2. フェッチだろう。だから、私がmodel.saveのために使った同じ例がうまくいくでしょう。

  3. 私は完全にはわかりませんが、バックボーンは、HTTPエラーでない限り、何かを返すことができるように、削除要求から返されたデータを検証しないと思います。下の@a.real.human.beingによれば、空の応答もエラーを引き起こします。だから、 "OK"を体(またはそれに類似)に入れて200を返すことは、合理的な計画のようです。

+4

「destroy」のJSON応答は問題になりません。バックボーンは成功のために20倍の応答を待ち受けます。 – abraham

+0

@abrahamええ、私はバックボーンがHTTPステータス200をOKにしていることを知っていたので、HTTPステータスを返すものはバックボーンの要求が成功したことを意味していました。 – Deeptechtons

+3

@abrahamこれは当てはまりません。 'destroy'に対してJSONレスポンスを送信しないと、モデルに' error'が生成されます。しかし、あなたが何かを(たとえ 'json_encode(" happy birthday ")'でも)送ると、それはそれを成功として扱います。 –

関連する問題