繁体   English   中英

点击事件时将值设置为 APP_BASE_HREF

[英]Set value to APP_BASE_HREF on click event

目前我正在使用 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。 我怎样才能做到这一点?

为什么不直接在组件中注入TranslateService令牌并按需设置新语言?

像这样的东西:

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

如果您想在运行时编辑您的令牌提供程序,您可以使用以下技巧 - 使用 DI 注入注入器,然后:

this.injector.create({providers: [...]})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM