2012-05-16 3 views
0

나는 백본에 익숙하지 않고 삭제 명령을 보내려고합니다. 게시물 수정 옵션을 사용하고 있지만 삭제는 메소드 만 보냅니다. 아래 예 :Backbone.js 파기/삭제와 함께 변수 보내기

Backbone.emulateHTTP = true; 
    Backbone.emulateJSON = true; 
    ProductImageModel = Backbone.Model.extend({ 

      initialize : function() { 
      }, 

      url : "/products/ajaximage", 
     }); 
    //Later called using 
    var image = new ProductImageModel({id: id}); 
    image.destroy(); 

문제는, ID는 전달되지 않습니다되고,하고 $ _POST에 나타나는 모든이있다 :

Array 
(
    [_method] => DELETE 
) 

삭제의 ID를 전달하는 방법이 있나요?

+0

어떤 버전의 Backbone.js를 사용하고 있습니까? ('console.log (Backbone.VERSION)') –

+0

0.9.2 –

답변

2

주석이 달린 소스를 검토하고 코드를 살펴 보는 중 ... Model.url 메소드를 정적 속성으로 재정의했습니다. Backbone.Model.url 방법은 다음과 같습니다 : 모델은 새로운 여부에 따라 즉시 당신을 위해 URL을 생성

url: function() { 
    var base = getValue(this, 'urlRoot') || getValue(this.collection, 'url') || urlError(); 
    if (this.isNew()) return base; 
    return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + encodeURIComponent(this.id); 
} 

.

하는 대신 '/products/ajaximage'Model.urlRoot 속성을 디폴트입니다 '/products/ajaximage'Model.url 속성을 디폴트로, 일을해야합니까. 그러면 Model.destroy()을 실행하고 모델의 ID를 요청 URL의 일부로 서버에 전달할 수 있으므로 삭제할 모델을 알 수 있습니다.

+0

아니요, 내 요청은/products/ajaximage –

+0

입니다. urlRoot : "/ products/ajaximage ", \t \t url : function() { \t \t \t var base = this.urlRoot || (this.collection && this.collection.url) || "/"; \t \t \t if (this.isNew()) \t \t \t \t return base; \t \t \t return base + "? id ="+ encodeURIComponent (this.id); \t \t} –

+0

나는 내 대답을 수정 한 것으로 착각했다. ;영형 –