[英]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.