2016-04-14 43 views
0

Foo Factory'de bir POST çağrısı ile özel bir yöntem kullanmak istiyorum. Bir GET isteği olarak adlandırdığımda, çalışır, ancak bu yöntem için GET GET izin vermiyor çünkü benim api tarafından inkar.

Request: GET /api/foo/272ee694-b517-4012-b740-98f76973091d/custom_method/ 405

I yöntem POST için (açısal fabrikada), Nesne ID disapears değiştiğinde:

Request: OPTIONS /api/foo/custom_method/ 174

Request: POST /api/foo/custom_method/ 405

Not Bu süre Bir seçenek olduğu istek kimlik olmadan önce yapılır.

appService.factory('foo', ['$resource', 'appConfig', 
    function($resource, appConfig){ 

    var api_path = appConfig.api_path; 

    return $resource(api_path + 'foos/:fooId/', {fooId:'@id'},{ 
     query: { 
     method: 'GET', 
     isArray: false 
     }, 
     customMethod: { 
     method: 'POST', 
     url: api_path + 'foos/:fooId/custom_method/' 
     } 
    }); 
    }]); 

Ve Kontrolcü:

$scope.foo = foo.get({fooId: $routeParams.fooId}); 

$scope.customMethod = function() { 
    foo.customMethod({fooId:$scope.foo.id}); 
} 

Herkes bana yardımcı olabilir

Benim fabrika benziyor? Teşekkürler.

cevap

0

Çözümü buldum. Denetleyicide, $ numaralı nesneden custom_method numaralı telefonu arayın. Bunun gibi:

$scope.foo.$custom_method(); 

Ayrıca, kimliği aktarmak için atlayabilirsiniz, çünkü $ resource varsayılan olarak nesneden alır.