У меня есть приложение angular, которое использует ngx-translate. Ниже версии:
"@angular/core": "5.2.6",
"@ngx-translate/core": "9.1.1",
"@ngx-translate/http-loader": "2.0.1"
В классе AppModule я добавил импорт ниже:
imports: [
.....
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: (createTranslateLoader),
deps: [HttpClient]
}
})
......
]
.....
export function createTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
И я создал SharedModule, который экспортирует TranslateModule:
exports: [
// Modules
TranslateModule,
....
]
Все работает как шарм, за исключением тех случаев, когда я обновляю страницу, помещенную в другой модуль, чем модуль приложения (который импортирует SharedModule). В этом случае мне нужно вернуться на домашнюю страницу (закодированную в AppModule), как только я перейду на домашнюю страницу, ngx-translate вернусь к работе, и я могу повторно перейти на другие страницы с помощью ngx-translate, который работает.
Кто-нибудь может мне помочь? заранее спасибо
ОБНОВЛЕНИЕ Похоже, проблема связана с тем, что translateService.currentLang не определен, когда я обновляю страницу. Если я программно установил язык в ngOnInit через translateService.use (language), он работает. Как я могу избежать установки вручную в каждом компоненте этой проверки переменной currentLang, установив currentLang по умолчанию?