0

Backbone-Relationalに変更した後、destroy()を呼び出すと、モデルが機能しなくなりました。サーバーで成功を取り除いたときに、クライアント側でIDがなくなるようにする必要があるため、もう一度保存しようとすると私のモデルはPUT(更新)を要求しません-サーバー側でレコードが見つかりませんをスローします。

Coffeescript側

save: ->        
    if isBlank @model.get("text")
        @model.destroy() # after success it still with same attributes including id!!
    else
        @model.save()

レール側

def destroy
    @note = Note.find(params[:id])
    @note.destroy        
    respond_with @note # callback is empty
end

バックボーンからのバグ-おそらくリレーショナル?Backbone.jsは破棄後にIDを更新しますか?

4

1 に答える 1

0

バックボーンは、破壊時にモデルを変更するようには見えません。コレクションから削除する場合を除きます。

コードを確認する

それが行うことは、イベントをトリガーするdestroyことです。これにより、このイベントを簡単にリッスンし、破壊で適切な動作であると思われることを何でも実行できます。

// code simplified and no tested
var MyModel = Backbone.Model.extend({
  initialize: function(){
     this.on( "destroy", this.afterDestroy, this );
  },

  afterDestroy: function(){
    this.set( "id", null );
  }
});
于 2012-05-10T08:54:15.003 に答える