2012-02-04 21 views
2

私はREST APIとのインターフェースをとるバックボーンアプリケーションを作成しています。バックボーンJS - RESTインターフェイスでのモデルの削除

私の問題は、ユーザーが既に他の人によって削除されたモデルを削除したときに発生します。私の意見では、バックエンドは、モデルがとにかく削除されるので、成功(200)を返してください。しかし、サーバー側を開発している人たちは別の意見を持っています。したがって、私は404を取得します。比較のために、要求が実際に失敗すると、モデルはまだ生きています。

エラーが発生するため、実際にモデルを削除しません。私がしようとしているのは、この動作を変更することです:モデルを削除するときに404エラーが発生した場合、それは成功として扱われるべきです。しかし、私は本当にこれを処理するための最も便利な方法は何か分かりません。

理想的には、このロジックをmodel.destroyに入れないでください。これは繰り返しにつながります。私はこれをスーパークラスのメソッドdestroyの中に入れることができますが、モデルはこのメソッドをオーバーライドします。それぞれ独自のロジックを持っているので、面倒です。この時点でmodel.destroyメソッドが成功し、実際の応答が404であったことはわかりません。

一方、私はこのロジックをBackbone.syncの中にどのように書き換えるのかはわかりません機能全体

DELETEリクエストに対するすべての404応答を成功に変換する最も透過的な方法は何ですか?

答えて

3

それはハックですが、トリックを行う必要があります:Backbone 0.9destroy()create()のように、ところで

model.destroy({ 
    error: function(model, resp, options) { 
     if (resp.status == 404) { 
      resp.status = 200; 
      options.success(model, resp); 
     } 
    } 
}) 

は楽観的です。

+0

偉大な答え!あなたは私にそれを打つが、私のことはそれほど良いことではないだろう。 – naugtur

+0

ありがとう、それはうまく動作します!これをビューに入れるのはちょっと醜いですが、今のところそれができます。 – Andrea

関連する問題