0

在我更改为 Backbone-Relational 后,当我调用 destroy() 时,我的模型停止工作。我必须确保当它在服务器上删除成功时,客户端将不再有 id,所以当我再次尝试保存它时我的模型不会请求 PUT(更新) - 在服务器端抛出 Record Not Found。

咖啡脚本方面

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-Relational 的错误?Backbone.js 会在销毁后更新 id 吗?

4

1 回答 1

0

Backbone 看起来并没有以任何方式在破坏时修改模型。除非将其从其收藏中删除(如果有)。

检查代码

它所做的是触发事件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 回答