首页 > 解决方案 > 更新路由Angular中的参数

问题描述

我有一个包含两个参数的路由,我试图更新它(只是 url,忘记组件的内容,我也不想刷新页面或任何东西,只是更新路由)但我不能这样做。我的路由:

const routes: Routes = [
{ path: "levs", component: MainComponent },
{ path: "levs/:levType", component: LevDetailsComponent },
{ path: "levs/:levType/:levId", component: EntityDetailsComponent }
];

所以当我进来时 EntityDetailsComponent,我的网址是:levs/someLev/someLevId我有一个其他实体的列表。单击时,我想像这样更新网址:levs/clickedLev/clickedLevId. 我试图从带有路由器链接的html中做到这一点:

<li [routerLink]="[type.entityType, type.entityName]">lev</li>

或者

<li [routerLink]="['/levs', type.entityType, type.entityName]">lev</li>

但在这两种情况下,它似乎都将其添加到现有路由中,如下所示: levs/someLev/someLevId/levs/clickedLev/clickedLevId 我尝试使用路由器从 EntityDetailsComponent.ts 开始:

this.router.navigate('/levs',[this.entityType, this.entityIdentifier]);

而且也没有levs之前的参数,但结果是一样的。

我找到了这个解决方案: Update routeparams in angular 5

但是这些人,他们只是在路线上添加数字,我不想增加我的参数而是改变它们,他们的方法对我不起作用。任何帮助,将不胜感激!

解决方案 感谢@armandyjoe 的帮助。这对我有用,我只需要调整传递的 url 并使用 replaceURL true。

this.router.navigate(["/dct/levs/", this.entityType, this.entityIdentifier], { replaceUrl: true });

标签: node.jsangularroutingurl-routing

解决方案


this.router.navigate(['/yoururl'], { queryParams: { type: someVariable, entity: someVariable } });

希望这有帮助!

问候


推荐阅读