0

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 是只读的……所以我尝试了不同的方法,例如

this.router.navigate([this.router.url], {version: 'baz',system: 'bar',id: '123'})

我可以使用我拥有的信息轻松创建一个新的 URL 字符串,但也许有一种简单的角度方式我看不到:D

4

1 回答 1

0

使用您的路由器并导航到当前路由,但使用更改的参数,例如:

this.router.navigate([MyCurrentRoute, { version: 'baz' }]);
于 2017-03-17T16:45:38.760 回答