在我的 Angular 6 解决方案中,网址具有以下结构:
/{语言}/{app_section}/{object_id}/{view}?queryparams...
语言选择器组件由应用程序的所有部分共享,并且包含在父路由之一的模板中,以便它出现在所有子路由中。
当用户选择新语言时,该组件应仅替换当前路线的 {language} 段,其他所有内容保持不变,并导航到新路线。看起来应该很简单,但我似乎找不到简单的方法。有人可以帮忙吗?
是的,这是可能的。读取当前路线,替换语言并导航到该 URL。
constructor(private _router: Router ) {
}
languageSelected(newLanguage) {
const newUrl = this._router.url.replace(this.currentlanguage, newLanguage);
this.router.navigateByUrl(newUrl);
}
我假设this.currentLanguage
包含与 URL 中完全相同的当前语言和newLanguage
传递给该方法的形式也与 URL 所需的形式完全相同。诸如此类的技术将触发组件刷新,并且临时状态将丢失。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)