0

我有一个 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 可以在单个控制器中配置吗?

4

1 回答 1

2

您可以在每次调用时覆盖 $http 标头

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

由于服务是单例的,因此它们是一次性配置的。您可以拥有多个 module.config 函数,但这无济于事。

您还可以使用拦截器来配置 http 请求。

于 2014-05-21T07:25:18.090 回答