2014-09-20 5 views
1

나는 제어 할 수없는 API로 작업하고 있습니다. 다음과 같이하고 싶습니다 :can.Model 여러 매개 변수로 파괴

var Page = can.Model.extend({ 
    destroy: 'DELETE /api/{account_id}/{page_id}' 
}) 

이것은 작동하지 않습니다. canjs는 단순히 파괴 URL을 사용하지 않습니다. 함수를 만들려고했지만 전달 된 유일한 매개 변수는 'id'입니다. 정말 REST가 아니지만 API가 붙어 있다고 말할 것입니다. url에 둘 이상의 매개 변수를 넣을 때마다 url은 사용되지 않습니다.

아이디어가 있으십니까?

답변

1

실제로 프로토 타입 파괴 속성을 문자열로 설정하는 것은 두 번째 객체가 전달되지 않으면 extend()로 전달 된 첫 번째 객체가 프로토 타입 속성으로 해석되기 때문입니다. var Page = can.Model.extend({ destroy: 'DELETE /api/{account_id}/{page_id}' }, {})

: 당신은 실제로이 작업을 수행해야 (NB : 당신이 can.Model을 확장 할 때 CanJS 내부 destroy 및 기능에 AJAX 사양에서 다른 속성을 변환하지만, 정적 속성에 )

+0

당신을 감사합니다 너무 많이! –

0

(... 2 매개 변수는 인스턴스 것을 알아 내기 위해 잠시했다가 어디 문서화 보지 않았다) OK 것 같다 :

조금 이상한 것 같다
var Page = can.Model.extend({ 
    destroy: function(id, page) { 
    return $.get('/api/'+page.account_id+'/'+page.id); 
    } 
}) 

,하지만 난 끝낼거야!