繁体   English   中英

Angular 6路由器-替换当前路由的某些参数

[英]Angular 6 router - replace some of the parameters of the current route

在我的Angular 6解决方案中,URL具有以下结构:

/ {language} / {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所需的确切形式。 诸如此类的技术将触发组件刷新,并且临时状态将丢失。

暂无
暂无

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

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