簡體   English   中英

如何讓不同的控制器在AngularJS中使用$ httpProvider的不同配置?

[英]How to get different controllers to use different configurations of $httpProvider in AngularJS?

我有一個AngularJS項目使用angular-seed的目錄布局。 https://github.com/angular/angular-seed

app.js包含我的http提供程序的配置。 我的所有控制器都必須在app.js中使用相同的http提供程序配置。

在app.js中,

angular.module('myApp', [
  'ngRoute',
  'myApp.filters',
  'myApp.services',
  'myApp.directives',  
  'myApp.controllers',
]).
config(['$httpProvider', function($httpProvider)
{
    if (!$httpProvider.defaults.headers.get) {
        $httpProvider.defaults.headers.get = {};    
    }

    //disable IE ajax request caching
    $httpProvider.defaults.headers.get['If-Modified-Since'] = '0'; 
}

我有一個控制器XXXCtrl,當app.js如上所述。 我有另一個控制器YYYCtrl,除非我在config(['$httpProvider', function($httpProvider)注釋掉代碼,否則它不起作用。

所以,我的問題是這個。 如何讓不同的控制器在AngularJS中使用$ httpProvider的不同配置? 可以在單個控制器內配置$ httpProvider嗎?

您可以在每次調用時覆蓋$ http標頭

$http.get(url, {headers:{...}});

由於服務是單例,因此它們可以一勞永逸地配置。您可以擁有多個module.config函數,但它不會有幫助。

您還可以使用Interceptor配置http請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM