2014-09-15 1 views
0

말은, 나는 다음과 같은 자원이 있습니다

angular.module('app.resources.demo-resource', ['ngResource']) 
.service('demoResource', 
    function ($resource) { 
    return $resource('/api/path', { }, { put: { method: 'PUT' } }); 
    }); 

을하고 나중에 약속을 사용하여 PUT 요청을 호출합니다. 어떻게 올바르게 수행 할 수 있습니까?

newResource.$put().then(...) 또는 newResource.put().then(...)?
두 변형이 모두 존재하며 그 차이점은 무엇입니까?

답변

2

기본적으로 요청 본문이 PUT, POST, PATCH 인 메소드가있는 "비 GET"동작을 정의하면 ngResource은 해당 자원의 모든 인스턴스에 대해 해당 조치/메소드를 자동으로 작성합니다 (접두사 by $). 이것은 단지 편의를위한 것입니다.

<Resource>.action([parameters], postData, [success], [error]) 

또는

<instance>.$action([parameters], [success], [error]) 

후자의 장점은 당신이 (그것이 년대 postData을 지정할 필요가 없다는 것입니다 :

기본적으로, 당신은 이러한 액션을 호출하는 방법은 두 가지가 <instance> 데이터로 작동하는 개체). 약속

0

:

<Resource>.action([parameters], postData).$promise 

또는

<instance>.$action([parameters]) 

자동으로 약속 (@ExpertSystem의 대답에). 첫 번째 접근 방식은 실제로보다 안정적으로 보입니다. (Angular가 _.extend({}, resource)을 수행 한 후에 인스턴스를 잘못된 리소스로 확인 함)