在我改为Backbone-Relational后,当我调用destroy()时,我的模型停止工作..我必须确保当它在服务器上删除成功时,客户端将不再有id,所以当我尝试再次保存我的模型不会请求PUT(更新) - 在服务器端抛出Record Not Found。
Coffeescript方
save: ->
if isBlank @model.get("text")
@model.destroy() # after success it still with same attributes including id!!
else
@model.save()
Rails方
def destroy
@note = Note.find(params[:id])
@note.destroy
respond_with @note # callback is empty
end
Backbone-Relational的bug可能呢? Backbone.js会在destroy之后更新id吗?
答案 0 :(得分: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 );
}
});