2012-05-10 2 views
0

Backbone-Relational로 변경 한 후 destroy()를 호출 할 때 내 모델이 작동을 멈췄습니다. 서버에서 성공을 제거 할 때 더 이상 ID가 없어지는 것을 보장해야합니다. 클라이언트 측, 그래서 그것을 다시 저장하려고하면 내 모델 요청 PUT (업데이트) 실 거예요 - 서버 측에서 찾을 수없는 레코드를 throw합니다.파괴 모델 서버가 null로 ID를 업데이트하지 않습니다

커피 스크립트 아마도 백본 관계 측면에서

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를 업데이트합니까?

답변

0

어떤 방식 으로든 모델을 파괴 할 때 백본 모델이 보이지 않습니다. 컬렉션에서 제거하는 경우는 예외입니다. 그것은 무엇을

Check the code

그렇게 쉽게이 이벤트를 듣고 당신이 파괴 적절한 행동이라고 생각 무엇이든 할 수있는 이벤트 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); 
    } 
}); 
+0

감사 남자, 난 그냥 궁금 이유 backbone.js는 성공 후 destroy()를 수행하지 않습니다. 어쨌든 : / – mateusmaso