更新路线中的参数 Angular
Updating parameters in route Angular
我有一个包含两个参数的路由,我正在尝试更新它(只是 url,忘记组件的内容,我也不想刷新页面或任何东西,只是更新路线)但我不能那样做。我的路线:
const routes: Routes = [
{ path: "levs", component: MainComponent },
{ path: "levs/:levType", component: LevDetailsComponent },
{ path: "levs/:levType/:levId", component: EntityDetailsComponent }
];
所以当我在 EntityDetailsComponent
并且我的 url 是:levs/someLev/someLevId
我有一个其他实体的列表。单击时,我想像这样更新 url:levs/clickedLev/clickedLevId
。我尝试从 html 使用路由器 link:
<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
但结果是一样的。
我找到了这个解决方案:
但是这些家伙,他们只是在路线上添加数字,我不想增加我的参数而是改变它们,他们的方法对我不起作用。
任何帮助将不胜感激!
解决方案
感谢@armandyjoe 的帮助。这对我有用,我只需要调整传递的 url 并使用 replaceURL true.
this.router.navigate(["/dct/levs/", this.entityType, this.entityIdentifier], {
replaceUrl: true
});
this.router.navigate(['/yoururl'], { queryParams: { type: someVariable, entity: someVariable } });
希望对您有所帮助!
此致
我有一个包含两个参数的路由,我正在尝试更新它(只是 url,忘记组件的内容,我也不想刷新页面或任何东西,只是更新路线)但我不能那样做。我的路线:
const routes: Routes = [
{ path: "levs", component: MainComponent },
{ path: "levs/:levType", component: LevDetailsComponent },
{ path: "levs/:levType/:levId", component: EntityDetailsComponent }
];
所以当我在 EntityDetailsComponent
并且我的 url 是:levs/someLev/someLevId
我有一个其他实体的列表。单击时,我想像这样更新 url:levs/clickedLev/clickedLevId
。我尝试从 html 使用路由器 link:
<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
但结果是一样的。
我找到了这个解决方案:
但是这些家伙,他们只是在路线上添加数字,我不想增加我的参数而是改变它们,他们的方法对我不起作用。 任何帮助将不胜感激!
解决方案 感谢@armandyjoe 的帮助。这对我有用,我只需要调整传递的 url 并使用 replaceURL true.
this.router.navigate(["/dct/levs/", this.entityType, this.entityIdentifier], {
replaceUrl: true
});
this.router.navigate(['/yoururl'], { queryParams: { type: someVariable, entity: someVariable } });
希望对您有所帮助!
此致