2014-09-10 8 views
15

के लिए $ संसाधन के लिए मक्खी पर हेडर पारित करने के लिए अभी, एक ही रास्ता है कि मैं एक AngularJS कॉल के लिए गतिशील हेडर में टोकन स्थापित करने के लिए पता है तो तरह $http के माध्यम से है:कैसे AngularJS

return $http.get({ 
    url: 'https://my.backend.com/api/jokes', 
    params: { 
    'jokeId': '5', 
    }, 
    headers: { 
    'Authorization': 'Bearer '+ $scope.myOAuthToken 
    } 
}); 

लेकिन मैं चाहता हूँ

... 
.factory('myFactory', 
    ['$resource', 
    function($resource){ 
     return { 
     jokes: $resource('https://my.backend.com/api/jokes', null, { 
      query: { 
      method: 'GET' 
      } 
     }) 
     }; 
    } 
    ] 
); 
... 
return myFactory.jokes.query({ 
    'jokeId': '5', 
    'headers': { 
    'Authorization': 'Bearer '+ $scope.myOAuthToken 
    } 
}); 

मैं कैसे $ करने के लिए मक्खी पर हेडर पारित कर सकते हैं AngularJS के लिए संसाधन: यह पता लगाने की कैसे $ संसाधन के माध्यम से इस पारित करने के लिए, यहाँ कुछ छद्म कोड वह काम नहीं करता है?

उत्तर

31

मुझे नहीं लगता कि यह आपके द्वारा प्रयास किए जा रहे तरीके से किया जा सकता है, क्योंकि कॉन्फ़िगर ऑब्जेक्ट क्रिया विधि पर उपलब्ध नहीं है। लेकिन एक्शन कॉन्फ़िगरेशन विधि में यह है। तो आप संसाधनों को सीधे वापस करने के बजाय क्या कर सकते हैं, एक फ़ंक्शन बनाएं जो ऑथ टोकन पैरामीटर लेता है और फिर संसाधन का निर्माण करता है और वापस लौटाता है।

return { 
    jokes: function (token) { 
     return $resource('https://my.backend.com/api/jokes', null, { 
      query: { 
       method: 'GET' 
       headers: { 
        'Authorization': 'Bearer ' + token 
       } 
      } 
     }) 
    } 
}; 

तब के रूप में

myFactory.jokes($scope.myOAuthToken).query({'jokeId': '5'}); 
+2

सेवा फ़ंक्शन को कॉल मैं इसे बाहर की कोशिश की, एक आकर्षण की तरह काम किया! धन्यवाद @ कन्नर्मनी! नमूना कोड: 'sample.factory ('प्रतिबंधित', [ '$ संसाधन', समारोह ($ संसाधन) { वापसी { createRestrictedResource: समारोह (टोकन) { वापसी $ संसाधन ('/ API/v1/प्रतिबंधित' , शून्य, {क्वेरी: {शीर्षलेख: {'प्रमाणीकरण': 'बेयरर' + टोकन}}}; } } }]; '' – prasanthv