У меня есть приложение с лениво загруженными модулями.У меня также есть общий модуль с именем MainModule
.Вот мой очень простой сервис под названием LangService
:
@Injectable({
providedIn: 'root'
})
export class LangService {
lang:string = "en";
constructor(public translate: TranslateService) {
this.translate.setDefaultLang( this.lang );
this.translate.use( this.lang );
}
setLang( lang ) {
this.translate.setDefaultLang( this.lang );
this.translate.use( this.lang );
this.lang = lang;
}
}
В маршрутизации моих вкладок у меня есть следующее:
changeLang(lang) {
// lang is for example "fr"
this.langService.setLang(lang);
}
И мои вкладки html:
<Label [text]="'HOME.Title' | translate"></Label>
Теперь, когда я иду по другому маршруту, в его компоненте я получаю значение по умолчанию (а не измененное значение):
constructor(public langService:LangService) {
// prints "en" !!!
console.log(this.langService.lang);
};
Я предоставил сервис в своем общем модуле и импортирую свой общий модуль везде:
providers: [
LangService
],
Я использую Angular 7 с nativescript.