2013-02-25 17 views
7

क्या एक कस्टम $ संसाधन कार्रवाई का पथ निर्दिष्ट करना संभव है?

angular.module('MyServices', [ 'ngResource' ]).factory('User', [ '$resource', ($resource)-> 
    $resource('/users', {}, { 
    names: { path: '/names', method: 'GET', isArray: true } 
    }) 
]) 

तो मुझे यह पसंद है उपयोग कर सकते हैं:

मैं की तरह कुछ लिखने के लिए चाहते हैं

User.names() # GET /users/names 
+1

स्वीकृत उत्तर लंबे अप्रचलित है; न केवल वह विशेषता है जो विलय के बारे में बात करती है, लेकिन [अधिक सरल विकल्प] (http://stackoverflow.com/a/20022017/1709587) हैं। –

उत्तर

8

यह सीधे AngularJS के वर्तमान संस्करण में समर्थित नहीं है लेकिन वहाँ एक pull request खुला है तो संभावना है कि यह निकट भविष्य में समर्थित होगा।

1) रास्ते में चर के साथ खेलते हैं:

$resource('/users/:names', {}, { 
    names: { params: {names: 'names'}, method: 'GET', isArray: true } 
    }) 

2) $http service का प्रयोग करें बजाय

3) से कोड का प्रयास करें

तब तक आप 3 विकल्प मिल गया है AngularJS

+3

अब कोणीय 1.2 में एक 'url' संपत्ति है - देखें: http://stackoverflow.com/a/20022017/2583484 – Adam

5

बंदर-पैच संस्करण पर बंद पीआर का उल्लेख इस working Plunker (अंश) में लॉग इन करें:

var app = angular.module('plunker', ['ngResource']) 
    .controller('MyController', 
    function($scope, $resource) { 
     var User = $resource(
     '/users/:action', 
     {}, 
     { 
      names:{ 
      method:'GET', 
      params:{action:'names'} 
      } 
     } 
    ); 

     $scope.users = User.get(); 
     $scope.names = User.names(); 
    } 
); 
+0

धन्यवाद। यह मेरी परियोजना के लिए बहुत अच्छा काम किया। –

5

एक कम वाक्पटु, लेकिन समान रूप से प्रभावी विधि:

var resourceUrl = '/users'; 
return $resource(resourceUrl, {}, { 
    names: { path: resourceUrl + '/names', method: 'GET', isArray: true } 
}) 
5

कोणीय प्रलेखन से: https://docs.angularjs.org/api/ngResource/service/ $ संसाधन आप अपने कस्टम कार्रवाई पिछले एक स्थान पर आ जाएगी के लिए 'url' निर्दिष्ट कर सकते हैं।

angular.module('MyServices', ['ngResource']).factory('User', ['$resource', ($resource)-> $resource('/users', {}, { 
names: { url: '/users/names', method: 'GET', isArray: true } 
})]) 

यह कोणीय 1.3.10 का उपयोग करके मेरी परियोजना में काम करता है!

+0

यह शानदार है। धन्यवाद! – whiterook6

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

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