1。)让我们假设在我们的路由模块中,我们有一个如下配置的路径:
{ path: 'version/:version/system/:system/id/:id' }
2。)在浏览器中我们导航到:
version/foo/system/bar/id/123
3。)在我们想要将URL更改为:
的组件中version/baz/system/bar/id/123
...版本已更改......所有其他参数都相同......
...我们不知道如何实现这一目标(希望没有字符串替换:D),只需更改路由器的参数,并感谢任何帮助或输入......
其他一些信息:
this.route.params.subscribe(routeParams => {
this.routeParams = routeParams;
})
this.routeParams就是那样的
{version: 'foo',system: 'bar',id: '123'}
在我的组件中,我想给版本一个像'baz'
这样的新值{version: 'baz',system: 'bar',id: '123'}
我知道这会在不创建新对象的情况下抛出错误,因为this.routeParams是readonly ...所以我尝试了不同的东西,比如
this.router.navigate([this.router.url], {version: 'baz',system: 'bar',id: '123'})
我可以轻松地创建一个包含我所拥有信息的新URL字符串,但也许有一种简单的角度方式我无法看到:D
答案 0 :(得分:0)
使用您的路由器并导航到当前路线,但使用更改的参数,如:
this.router.navigate([MyCurrentRoute, { version: 'baz' }]);