Вы должны использовать APP_INITIALIZER
, предоставленный angular,
Токен впрыска APP_INITIALIZER позволяет вам участвовать в процессе инициализации приложения Angular и выполнять свою собственную работу.
Создать AppConfigService
, который загружает материалы перевода из БД.
@Injectable()
export class AppConfigService {
constructor(private translateService: TranslateService) {
}
public load() {
return new Promise((resolve, reject) => {
// TranslateService.getLocaleProperties => You can make use to load transaltion stuffs. This returns Observable.
this.translateService.getLocaleProperties().subscribe(
(response) => {
resolve(true);
},
(error) => {
console.error("The localization resources are not loaded.");
resolve(true);
});
});
}
}
В app.module.ts
вы вносите эти изменения,
Создать configLoad
фабрику, в которой есть функция, вызывающая метод загрузки AppConfigService
.
export function configLoad(config: AppConfigService) {
return () => config.load();
}
в providers: []
массиве предоставить APP_INITIALIZER
{ provide: APP_INITIALIZER, useFactory: configLoad, deps: [AppConfigService], multi: true },