目前我正在使用以下结构获取API url
我的环境。ts
export const environment = {
apiUrl: 'https://12.8.0.1:8282/'
};
我正在尝试在运行时使用APIRL。我正确地执行了该实现。
配置。服务
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
@Injectable( )
export class ConfigService {
private appConfig;
constructor(private http: HttpClient) { }
loadConfig(){
return this.http.get('./assets/config.json')
.toPromise()
.then(res =>{
this.appConfig = res;
console.log(res);
});
}
getConfig(){
return this.appConfig;
}
}
应用程序模块
import { APP_INITIALIZER, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { AuthGuard } from './auth.guard';
import { NgSelectModule } from '@ng-select/ng-select';
import { ConfigService } from './config.service';
//import {EndDateValidatorDirective} from '../app/layout/admin/holidays/EndDateValidatorDirective'
export const createTranslateLoader = (http: HttpClient) => {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
};
const appConfig = (config: ConfigService) =>{
return() =>{
return config.loadConfig();
}
}
@NgModule({
declarations: [
AppComponent,
],
imports: [
[
CommonModule,
BrowserModule,
BrowserAnimationsModule,
HttpClientModule, NgSelectModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: createTranslateLoader,
deps: [HttpClient]
}
}),
AppRoutingModule
]
],
providers: [ConfigService,{
provide:APP_INITIALIZER,
useFactory:appConfig,
multi: true,
deps:[ConfigService]
},AuthGuard],
bootstrap: [AppComponent]
})
export class AppModule { }
我负责这个项目,效果很好。我的函数在运行时成功执行。
现在我需要使用这个配置。json文件(位于资产文件夹内)并获取该APIRL。我是怎么做的