我有两个Angular模块,A
和B
。
A
没有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
过滤器与其特定的公共标题一起使用。
答案 0 :(得分:1)
这就是我的想法。像任何其他角度$httpProvider
一样,在本质上也是单身,这很好地意味着任何包括任何模块在内的任何地方都会对其他任何变化产生影响,换句话说,变化是全局性的。
答案 1 :(得分:1)
在任何一款应用中,无论您使用哪种模块,所有services
,factories
和providers
都是单身。
您正在使用$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