Установите значение APP_BASE_HREF для события клика - PullRequest
0 голосов
/ 21 марта 2020

В настоящее время я использую APP_BASE_HREF, чтобы установить текущий язык в качестве базового href моего приложения.

const appLanguageProvider: any[] = [
  {
    provide: APP_BASE_HREF,
    useFactory: appInitializerFactory,
    deps: [ TranslateService ]
  }
];

export const appInitializerFactory =  (
  translateService: TranslateService,
) => {
  return translateService.currentLang;
};

Base href настроен правильно на этапе инициализации приложения, но я хочу изменить basehref приложения, когда пользователь выбрал новый язык. Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 21 марта 2020

Если вы хотите редактировать свои токен-провайдеры во время выполнения, вы можете использовать следующую хитрость - используйте DI, чтобы ввести инжектор, затем:

this.injector.create({providers: [...]})
0 голосов
/ 21 марта 2020

Почему бы вам просто не вставить токен TranslateService непосредственно в ваш компонент и не установить новый язык по требованию?

Примерно так:

changeLang(lang: string) {
   this.translateService.use(lang);
}
...