Javascript 单击事件时将值设置为APP_BASE_HREF
目前我正在使用APP_BASE_HREF将当前语言设置为我的应用程序的BASE HREFJavascript 单击事件时将值设置为APP_BASE_HREF,javascript,angular,angular-ui-router,Javascript,Angular,Angular Ui Router,目前我正在使用APP_BASE_HREF将当前语言设置为我的应用程序的BASE HREF const appLanguageProvider: any[] = [ { provide: APP_BASE_HREF, useFactory: appInitializerFactory, deps: [ TranslateService ] } ]; export const appInitializerFactory = ( translateService
const appLanguageProvider: any[] = [
{
provide: APP_BASE_HREF,
useFactory: appInitializerFactory,
deps: [ TranslateService ]
}
];
export const appInitializerFactory = (
translateService: TranslateService,
) => {
return translateService.currentLang;
};
Base href在应用程序初始化阶段设置正确,但我想在用户选择新语言后更改应用程序的Base href。我怎样才能做到这一点呢?为什么不直接在组件中注入
TranslateService
标记,并根据需要设置新语言
大概是这样的:
changeLang(lang: string) {
this.translateService.use(lang);
}
为什么不直接在组件中注入
TranslateService
标记并按需设置新语言
大概是这样的:
changeLang(lang: string) {
this.translateService.use(lang);
}
如果要在运行时编辑令牌提供程序,可以使用以下技巧-使用DI注入注入器,然后:
this.injector.create({providers: [...]})
如果要在运行时编辑令牌提供程序,可以使用以下技巧-使用DI注入注入器,然后:
this.injector.create({providers: [...]})
但我也需要更改URL中的语言。我正在我的应用程序中将语言设置为base href。那么,你基本上是想在运行时更改提供程序吗?这正是我想要的。我会发布一个答案,但我也需要在URL中更改语言。我正在我的应用程序中将语言设置为base href。那么,你基本上是想在运行时更改提供程序吗?这正是我想要的。我将发布一个答案。我希望找到这个问题的答案。嗯,我希望找到这个问题的答案。