我知道我可以为routerLink传递一个参数,例如

/user/:id

通过编写

[routerLink]="['/user', user.id]"

但是像这样的路线呢:

/user/:id/details

有没有办法设置这个参数,或者我应该考虑一个不同的URL方案?


当前回答

constructor(private activatedRoute: ActivatedRoute) {

this.activatedRoute.queryParams.subscribe(params => {
  console.log(params['type'])
  });  }

这对我很管用!

其他回答

在您的特定示例中,您将执行以下routerLink:

[routerLink]="['user', user.id, 'details']"

要在控制器中做到这一点,你可以注入Router并使用:

router.navigate(['user', user.id, 'details']);

更多信息请参阅Angular文档中的路由和导航中的链接参数数组

也许这个回答有点晚,但是如果你想用param浏览另一个页面,

[routerLink]="['/user', user.id, 'details']"

此外,你不应该忘记路由配置,

 [path: 'user/:id/details', component:userComponent, pathMatch: 'full']

app-routing.module.ts

const routes: Routes = [
  { path: 'products', component: ProductsComponent },
  { path: 'product/:id', component: ProductDetailsComponent },
  { path: '', redirectTo: '/products', pathMatch: 'full' },
];

在控制器中,你可以这样导航,

this.router.navigate(['/products', productId]);

它将使您进入如下路径:http://localhost:4200/products/product-id

Ref

非常简单

<a routerLink="/user/{{id}}/details"></a>

首先在表中配置:

const routes: Routes = [  
{
  path: 'class/:id/enrollment/:guid',
  component: ClassEnrollmentComponent
 }
];

现在在类型脚本代码中:

this.router.navigate([`class/${classId}/enrollment/${4545455}`]);

接收另一个组件中的参数

 this.activatedRoute.params.subscribe(params => {
  let id = params['id'];
  let guid = params['guid'];

  console.log(`${id},${guid}`);
  });