2013-12-08 3 views
4

나는 이런 모양의 각 서비스가 있습니다. 여기에 POST 요청을하고 있습니다.ngResource는 url에 POST 매개 변수를 추가합니다.

.factory("Apples", function ($resource, HOST) { 

      return $resource(
       HOST + "/apples", 
       {}, 
       { 
        create: { 
         method: 'POST', 
         params: { 
          tree_id: '@treeId', 
          name: '@name', 
          color: '@color' 
         } 
        } 
       } 
      ); 
     }) 

문제는 위의 서비스가 POST 요청을하고 양식 데이터로 params 데이터를 전송뿐만 아니라 쿼리 문자열로 URL로 params 데이터를 추가한다는 것입니다. 그걸 피할 ​​수 있을까요?

+1

왜'$ http' 게시물을 사용하지 않습니까? –

+0

@MaximShoustin'$ resouce'는 REST를 더 쉽게 만들고 유니폼 쿼리 (및 액션) REST 인터페이스를 반환하기 위해'$ http'의 추상화입니다. –

+1

URL에 매개 변수를 넣지 않으려면 매개 변수를 URL 매개 변수로 구성하지 마십시오. $ resource은 인스턴스 데이터를 그대로 전송할 것입니다 (따라서 데이터는'tree_id'가 아닌'treeId'가됩니다.) –

답변

6

$resource을 사용하는 방법에 대해 의견이 분분하다고 생각합니다. $ resource 인스턴스를 모델 인 것처럼 작성하고 POST 할 오브젝트의 속성을 설정해야합니다. 당신의 Apples $ 자원으로

는 상기 정의 :

var apple = new Apples(); 

apple.color = ... 
apple.name = ... 
apple.tree_id = ... 

apple.$create() 

아니면 그냥 직접 $ 자원 클래스를 사용할 수 있습니다

Apples.create({ 
    apple.color: ... 
    apple.name: ... 
    apple.tree_id: ... 
}); 

마지막으로, $ 자원은 내장 $save() 그 사용이 POST는 사용자 정의 $create() 작업을 만드는 대신 사용할 수 있습니다.