У меня есть служба с именем routing.service
, которая подписывается на событие маршрутизации и, когда параметр изменяется, обновляет службу перевода.Как показано в конструкторе:
this.router.events.subscribe(val => {
if (val instanceof ActivationEnd ) {
let myVal = val.snapshot.params.lang;
this.currentLang = myVal;
this.translate.use(myVal);
this.translate.setDefaultLang(config.defaultLang);
}
});
У меня есть общий модуль, который импортируется в модуль приложения.В разделяемом компоненте все отлично работает:
<div [innerHTML]="'HOME.TITLE' | translate"></div>
Но у меня лениво загруженные модули не работают.Даже я не могу получить доступ к this.currentLang
, который находится внутри subscribe
.Любая идея?
Обновление: Вот более подробно о моем коде:
app.module:
imports:[
CommonModule,
BrowserModule,
FormsModule,
NgtUniversalModule,
TransferHttpCacheModule,
HttpClientModule,
AppRoutingModule,
SharedModule
],
shared.module:
imports: [
CommonModule,
RouterModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateUniversalLoader,
}
})
],
exports: [
HeaderComponent,
TranslateModule
]
lazy -loaded.module:
imports: [
CommonModule,
FormsModule,
CustomersRoutingModule,
SharedModule,
],
Мой app.component:
<!-- This is component of my shared.module and translation works fine here, but not in lazy loaded modules -->
<saz-header></saz-header>
<router-outlet></router-outlet>