配置AngularJS模块 - 它如何影响应用程序中的其他模块?

时间:2013-08-21 09:55:25

标签: angularjs angularjs-module

我有两个Angular模块,ABA没有deps,一些配置和一些过滤器:

angular.module('A', [])
    .config(function ($httpProvider) {
    // set common headers for $http requests
        $httpProvider.defaults.headers.common = {...};
    })
    .filter('myFilter', function () {
        // create a filter
    });

B取决于A,因此它类似于:

angular.module('B', ['A'])...

我知道B取决于A,这意味着我可以在myFilter次观看中使用B

问题是:myFilter中的代码是否受益于我在$http模块的config()函数内设置的A个公共标头(自{{1}起) }属于myFilter)?

当从A模块内部发出HTTP请求时,我在B内设置的公共标头是不是受A内部配置的影响?

这两个问题对我来说都是正确的:我在A模块中配置了一些公共标题,我将在A模块提供的过滤器中使用它,但我想要那些当我进入A模块时,常见的标题不受我影响;但是,当我在B次观看时,我希望能够将B过滤器与其特定的公共标题一起使用。

3 个答案:

答案 0 :(得分:1)

这就是我的想法。像任何其他角度$httpProvider一样,在本质上也是单身,这很好地意味着任何包括任何模块在内的任何地方都会对其他任何变化产生影响,换句话说,变化是全局性的。

答案 1 :(得分:1)

在任何一款应用中,无论您使用哪种模块,所有servicesfactoriesproviders都是单身

您正在使用$httpProvider,这是一个单身人士...因此,根据单身人士的性质,对提供商进行的任何配置都意味着所有模块都会受到影响。< / p>

答案 2 :(得分:0)

是的,这是它的工作原理。见例。

angular.module("foo",[]).config(function($httpProvider){$httpProvider.test = 123});
angular.module("bar",["foo"])
  .config(function($httpProvider){console.log(httpProvider.test)}); //123