Angular2:如何通过更改某些路径参数导航到新网址?

时间:2017-10-27 03:26:32

标签: angular parameters router

我有一些像这样的路由代码:

// routing.module.ts
const routes: Routes = [
  {
    path: ':group',
    component: MainComponent,
    children: [
      { path: 'prod', loadChildren: './prod/prod.module#ProdModule' },
      { path: 'test', loadChildren: './test/test.module#TestModule', },
    ]
  }
];

我预期的效果是这样的导航: localhost:4200 / a / x =>的本地主机:4200 / B / X 'x'可以是'prod'或'test'。 我只想更改参数并保持其他路线不变。

在我的MainComponent中,我编写了一些代码并且不知道如何进行导航:

// MainComponent
this.activatedRoute.paramMap
  .subscribe((params: ParamMap) => {
    let originalGroup = params.get('group');
    if (originalGroup === 'a') {
      // this.router.navigate();  // <= How to change the group with other routes remaining unchanged ???
    }
  });

1 个答案:

答案 0 :(得分:0)

这更像是一个黑客,但你可以编辑它以使其更通用。

// MainComponent
this.activatedRoute.paramMap
  .subscribe((params: ParamMap) => {
    let originalGroup = params.get('group');
    if (originalGroup === 'a') {
       // if you are in prod code. (change the prod to test if you are in test code)
       this.router.navigate(['/b','prod']);  

    }
  });