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 

यह FindRange REST सेवा का उपयोग करने का सही तरीका है। यह 1 से 4 तक आरएमआईडी देता है, लेकिन मैं इसे नियंत्रक से कैसे उपयोग कर सकता हूं और सेवा में सही वाक्यविन्यास क्या है?

नियंत्रक में मैं ऐसा ही कुछ के लिए इसका इस्तेमाल करना चाहते हैं:

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

लेकिन यह काम नहीं कर रहा।

उत्तर

23

आप यूआरएल ओवरराइड कर सकते हैं $resource डॉक्स

यूआरएल पढ़ें - {स्ट्रिंग} - कार्रवाई विशिष्ट यूआरएल ओवरराइड। यूआरएल टेम्पलेटिंग संसाधन-स्तर यूआरएल की तरह ही समर्थित है।

संसाधन घोषणा में

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

नियंत्रक

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

धन्यवाद, वह था। मुझे वास्तव में AngularJS के बारे में Google दस्तावेज़ पसंद नहीं है। उदाहरण बहुत सरल हैं और दस्तावेज है .... मेरे लिए नहीं या वे बहुत मिश्रित हैं। असल में मैंने कोशिश की लेकिन मैंने यूआरएल नहीं बदला। अगर आपको दो टेबल (इत्यादि आदि) से प्राप्त करना है तो कैसे? क्या यह संभव है? – Sami

-1

इस तरह नियंत्रक में इसका उपयोग करने से आपकी सेवा बदलने का प्रयास करें में:

'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'}); 
    }); 

मुझे नहीं पता कि यह बीटीडब्ल्यू काम करेगा, क्योंकि मेरे पास ngResource का उपयोग नहीं है, लेकिन इस तरह मैं अपनी फैक्ट्री सेवाओं को कोड करता हूं।

संबंधित मुद्दे