2014-10-31 2 views
1

기본적으로 Angular의 $ resource. $ save 메서드는 "기본"범위의 매개 변수가있는 요청을 보냅니다. 예를 들어, 속성 {name: 'John Smith', email: '[email protected]'}와 리소스를 생성하는 파라미터와 POST 될 것이다 : 그러나

name=John Smith&[email protected] 

를, I는 요구 자원보다 정상적인 railsy 방법 등 서브 해시 (로 범위 레일 컨트롤러가 일하는 것). 나는 같은 매개 변수를 가지고 요청을 할 것입니다 :

user[name]=John Smith&user[email][email protected] 

문제는, 난 그냥이 사용 $ 리소스를 할 수있는 방법이 표시되지 않습니다. 가능한가?

답변

1

$resourcetransformRequest 옵션을 사용하면이 작업을 수행 할 수 있습니다. 다음 (커피 스크립트로 작성)를 update 작업을 사용하는 예는 다음과 같습니다

update: 
    method: 'PUT' 
    transformRequest: (data, headersGetter) -> 
    data = _.omit(data, '$promise', '$resolved') 
    json = {'user': data} 
    return JSON.stringify(json) 

당신은 기본적으로이 작업을 수행하려면

, 나는 $resource를 래핑하고 모든 작업에 transformRequest 기능을 추가하는 서비스를 작성하는 것이 좋습니다.