如何在Angular.js的app.config中注入多个提供程序

时间:2019-01-21 13:43:03

标签: angularjs angular-providers

我的项目中有多个提供程序,每个提供程序都有自己的构造函数,我试图将所有这些提供程序注入到主app.config中。 我尝试了以下方案,但无法正常工作

试图将所有提供程序添加到数组本身内,但不起作用

app.config([
'EquityValueProvider', function (EquityValueProvider) {
EquityValueProvider.setAPIURL('https://localhost:44333/api/equityvalue');
},
'HeatMapServiceProvider', function (HeatMapServiceProvider) {
HeatMapServiceProvider.setAPIURL('https://localhost:44333/api/equityvalue');
},
'RetailerProvider', function (RetailerProvider) {
RetailerProvider.setAPIURL('https://localhost:44333/api/equityvalue');
}]);

但是下面的代码可以正常工作(多个配置)

 app.config([
'EquityValueProvider', function (EquityValueProvider) {
EquityValueProvider.setAPIURL('https://localhost:44333/api/equityvalue');
 }])
.config([
'HeatMapServiceProvider', function (HeatMapServiceProvider) {
HeatMapServiceProvider.setAPIURL('https://localhost:44333/api/equityvalue');
}])
.config([
'RetailerProvider', function (RetailerProvider) {
RetailerProvider.setAPIURL('https://localhost:44333/api/equityvalue');
}]);

但是在这里我要添加多个配置,而不是我可以做一个配置并添加所有提供程序。

2 个答案:

答案 0 :(得分:1)

方法如下:

app.config([
'EquityValueProvider'
'HeatMapServiceProvider',
'RetailerProvider',
 function (EquityValueProvider, HeatMapServiceProvider, RetailerProvider) {
   EquityValueProvider.setAPIURL('https://localhost:44333/api/equityvalue');
   HeatMapServiceProvider.setAPIURL('https://localhost:44333/api/equityvalue');
   RetailerProvider.setAPIURL('https://localhost:44333/api/equityvalue');
}]);

您可以添加任意数量的提供程序。

答案 1 :(得分:1)

为config函数提供三个参数:

app.config([
    'EquityValueProvider','HeatMapServiceProvider','RetailerProvider',   
    function (EquityValueProvider,HeatMapServiceProvider,RetailerProvider) {       
        EquityValueProvider.setAPIURL('https://localhost:44333/api/equityvalue');
        HeatMapServiceProvider.setAPIURL('https://localhost:44333/api/equityvalue');
        RetailerProvider.setAPIURL('https://localhost:44333/api/equityvalue');
    }
]);

有关更多信息,请参见AngularJS Developer Guide - Dependency Injection