2011-07-01 5 views
3

で保存:観察がBackbone.ModelBACKBONE.JSは、私はCoffeeScriptの中で定義されたバックボーン・ビューで、次のメソッドを持ってCoffeeScriptの

class Observation extends Backbone.Model 
    url: -> 
    "/AuditActionTracking/" 

から延長され

saveObservation: => 
    self = @ 
    observation = new Observation(ParentUid: _questionUid, Status: "N/a", Text: "Change to element") 
    observation.save { 
      success: -> 
      alert('test') 
      error: -> 
      alert('failed') 
     } 

保存は、サーバーに到達したが、どちらも私がセーブで定義した成功ハンドラとエラーハンドラは、ajaxコールの完了後に呼び出されます。

私が間違っていることを誰も見ることができますか?

+0

'Observation'がモデル、コレクション、または何らかの任意のものであるかどうかを忘れてしまった – Raynos

+0

申し訳ありません、モデルです – dagda1

答えて

6

Backbone.Model.saveは、2 parametersとなります。最初は変更するプロパティのリストで、2番目はコールバックの設定です。

observation.save {}, 
    success: (model, response) -> 
     alert('test') 
    error: (model, response) -> 
     alert('failed') 
+1

ありがとう、私は怒っていると思った – dagda1

4

最初の答えは私のためではなく、若干の変更で働いていた:あなたが保存中に他のプロパティを変更していない場合

ので、あなただけの空のオブジェクトを渡すことができます。空のハッシュを渡す代わりに、nullを渡す必要がありました。そうでない場合は、空のハッシュを使用してモデルのすべての属性が設定され、既存の属性が置き換えられ、実際に削除されます。

observation.save null, 
    success: (model, response) -> 
    alert('test') 
    error: (model, response) -> 
    alert('failed') 

これまでの回答が掲載されて以来、おそらくAPIが変更されている可能性があります。

関連する問題