2015-06-02 10 views
9
'use strict'; 
angular.module('rmaServices', ['ngResource']) 
    .factory('rmaService', ['$resource', 
     function ($resource) { 
      return $resource(
        '/RMAServerMav/webresources/com.pako.entity.rma/:id', 

        {}, 
        { 
         delete: { method: 'DELETE', params: {id: '@rmaId'}}, 
         update: { method: 'PUT', params: {id: '@rmaId'}}, 
         //RMAServerMav/webresources/com.pako.entity.rma/0/3 
         findRange:{method: 'GET', params:{id:'@rmaId'/'@rmaId'}} 
        }); 
     }]); 

RMAServerMav/webresources/com.pako.entity.rma/0/3 

To jest poprawny sposób korzystania z usługi REST serwisu findRange. Ten zwraca identyfikator rmaID od 1 do 4, ale jak mogę go użyć z kontrolera i jaka jest poprawna składnia w usłudze?

W sterowniku chciałbym go używać coś takiego:

$scope.rmas = rmaService.findRange({id:'0'/'3'}); 

ale to nie działa.

Odpowiedz

23

Można zastąpić URL Czytaj $resource docs

url - {ciąg} - działanie specyficzne url przesłanianie. Szablony szablonów URL są obsługiwane tak samo, jak adresy URL na poziomie zasobów.

W deklaracji zasobów

findRange:{ 
    url: '/RMAServerMav/webresources/com.pako.entity.rma/:id/:to', 
    method: 'GET', 
    params:{ 
     id:'@id', 
     to: '@to' 
    } 
} 

kontroler

$scope.rmas = rmaService.findRange({id:0, to: 3}); 
+0

Dzięki, to było to. Naprawdę nie lubię dokumentu Google o AngularJS. Przykłady są zbyt proste, a dokumentacja jest .... nie dla mnie lub są one zbyt mieszane. Zasadniczo próbowałem tego, ale nie zmieniłem adresu URL. Co powiesz na to, czy musisz dostać się z dwóch tabel (łączenia itp.)? Czy to możliwe? – Sami

-1

spróbować zmienić swoje usługi przy użyciu go w sterowniku jak ten:

'use strict'; 
angular.module('rmaServices', ['ngResource']) 
    .factory('rmaService', ['$resource', 
     function ($resource) { 

      var service ={} 

      service.rma = function(){ // name it whatever you want 

       return $resource(
        '/RMAServerMav/webresources/com.pako.entity.rma/:id', 

        {}, 
        { 
         delete: { method: 'DELETE', params: {id: '@rmaId'}}, 
         update: { method: 'PUT', params: {id: '@rmaId'}}, 
         //RMAServerMav/webresources/com.pako.entity.rma/0/3 
         findRange:{method: 'GET', params:{id:'@rmaId'/'@rmaId'}} 
        }); 
      }; 
      return service; 
}]); 


//in controller 
rmaService.rma() 
    .then(function(resource){ 
    $scope.rmas = resource.$findRange({id:'0'/'3'}); 
    }); 

Nie mam pojęcia, czy to zadziała, ponieważ nie używam ngResource, ale w ten sposób koduję moje usługi fabryczne.