Вы можете добиться этого, используя APP_INITIALIZER
, например:
- Создайте сервис для получения конфигурации из API, назовем его
AppConfigService
:
@Injectable()
export class AppConfigService {
private appConfig;
constructor(private http: HttpClient) { }
loadAppConfig() {
return this.http.get('http://url-to-config-from-environment.ts')
.toPromise()
.then(data => {
this.appConfig = data;
});
}
getConfig() {
return this.appConfig;
}
}
^ в этом сервисе вам нужно реализовать реальный код для получения конфигурации, основанной на среде. Вот пример этого.
Внедрить сервис в AppModule:
@NgModule({
...
providers: [
AppConfigService,
{
provide: APP_INITIALIZER,
useFactory: appInitializerFn,
multi: true,
deps: [AppConfigService]
}
],
...
})
export class AppModule { }
Реализация фабричной функции
appInitializerFn
в
AppModule
:
...
const appInitializerFn = (appConfig: AppConfigService) => {
return () => {
return appConfig.loadAppConfig();
};
};
@NgModule({
Вы можете см. Эту статью для получения более подробной информации.