2016-02-17 68 views
1

我想製作一個單獨的$http模塊,它與原始$http模塊完全相同,但是會將baseURL附加到每個請求。AngularJS中的「Subclass」http和httProvider

我知道,這可與interceptor做,但我不希望這種行爲的$http每個實例,只爲我的「子」(在JS不是真的有可能)被稱爲像$httpAPI什麼的。

我見過類似的解決方案,手工做了很多工作。我可以克隆$http並在克隆版上放置攔截器嗎?

回答

0

創建具有$http和可注射參數的服務。實現你使用的通用函數(get,post,put,...等)。在這個新服務中,baseUrl可以被注入或硬編碼。

function myHttp($http, baseUrl){ 

    var internalBaseUrl = baseUrl || 'http://www.baseUrl.com/'; 

    return { 
     get: function(url){  
      return $http.get(baseUrl + url); 
     }, 

     post: function(url, data){ 
      return $http.get(baseUrl + url, data); 
     } 
    } 
} 
+0

謝謝,但我正在尋找更多的方法來做到這一點在攔截器級別,但與一個子類服務 – OneChillDude