Angular 角度:如何使用路由路径发送参数?

Angular 角度:如何使用路由路径发送参数?,angular,routing,Angular,Routing,假设我有三个不同的API来描述类别(汽车、颜色、食物)。在routerLink中,我使用此routerLink=“/{{element.name}}”并在我的模块中使用: path: ':id', component: ListComponent 现在,当我路由它时,它会变成这样:localhost:4200/red,这对我来说很好,但是我如何使用这个URL发送一些独特的东西,以确保元素是彩色的,并在代码中的某个地方处理它呢?使用类似这样的东西: export const routes:

假设我有三个不同的API来描述类别(汽车、颜色、食物)。在
routerLink
中,我使用此
routerLink=“/{{element.name}}”
并在我的模块中使用:

 path: ':id',
 component: ListComponent

现在,当我路由它时,它会变成这样:
localhost:4200/red
,这对我来说很好,但是我如何使用这个URL发送一些独特的东西,以确保元素是彩色的,并在代码中的某个地方处理它呢?

使用类似这样的东西:

export const routes: Routes = [
  //...
  { path: 'colors/:color', component: ColorsComponent },
  //...
];
您可以在模板中使用以下路径:

<a [routerLink]="['/colors', 'red']">Something</a>
当然,红色也可以是一个变量。 您可以在组件的
ngOnInit()
中订阅此参数:

你也可以在汽车和食物上使用这种方法


更新:

如果要传递传统的“参数”。您可以尝试以下方法:

{
    path: 'colors/:color',
    component: ColorComponent,
    data: {someValue: 123}
}

在组件中,可以使用
this.route.data
访问它。URL仍然如下所示:例如:
localhost:4200/colors/red

使用如下内容:

export const routes: Routes = [
  //...
  { path: 'colors/:color', component: ColorsComponent },
  //...
];
您可以在模板中使用以下路径:

<a [routerLink]="['/colors', 'red']">Something</a>
当然,红色也可以是一个变量。 您可以在组件的
ngOnInit()
中订阅此参数:

你也可以在汽车和食物上使用这种方法


更新:

如果要传递传统的“参数”。您可以尝试以下方法:

{
    path: 'colors/:color',
    component: ColorComponent,
    data: {someValue: 123}
}

在组件中,可以使用
this.route.data
访问它。URL仍然如下所示:
localhost:4200/colors/red
例如。

好吧,传递类别及其值:/colors/red,或/cars/ford,或/food/bread。可能重复的好吧,传递类别及其值:/colors/red,或/cars/ford,或/food/bread。可能重复的完美!但是我如何才能使我的url像这样
localhost:4200/red
,但在我的函数中,我想发送
id
而不是名称,这样我需要显示用户的“red”字,但实际上值是
id
,在我的代码中,url将像这样(例如):
localhost:4200/colors/red
,以及参数['color']将值“red”作为字符串。是否要向组件发送一个附加参数而不在URL中显示它?是的,例如,如果我有
localhost:4200/red/123
我希望用户像这样显示URL
localhost:4200/red
,但在我的函数中,我将忽略汽车并处理id 123。太好了,但是我在哪里可以将123从html传递到传统参数呢?太好了!但是我如何才能使我的url像这样
localhost:4200/red
,但在我的函数中,我想发送
id
而不是名称,这样我需要显示用户的“red”字,但实际上值是
id
,在我的代码中,url将像这样(例如):
localhost:4200/colors/red
,以及参数['color']将值“red”作为字符串。是否要向组件发送一个附加参数而不在URL中显示它?是的,例如,如果我有
localhost:4200/red/123
我希望用户像这样显示URL
localhost:4200/red
,但在我的函数中,我将忽略汽车并处理id 123。太好了,但是在哪里可以将123从html传递到传统参数?