node.js - 更新路由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
});
解决方案
this.router.navigate(['/yoururl'], { queryParams: { type: someVariable, entity: someVariable } });
希望这有帮助!
问候
推荐阅读
- javascript - 是否可以使用由不同版本的 Angular 构建的不同角度元素
- javascript - Process.env.PORT 与硬编码
- html - 需要关闭 pdf 查看器工具栏
- php - 在 laravel 中,可以在数据库中存储带有预定义文本的当前时间,
- oracle - 在 oracle SQL DB 中,相同的主 ID 存在不止一次,但具有不同的 batch_id。如何知道当前批次 ID 之前的批次 ID
- ios - iOS模拟器中的OpenGL非常慢
- aws-lambda - 无服务器 Lambda 函数未正确映射到响应
- java - 调用方法不适用于整数
- c# - C# 访问 ADODB 中的第一个 Recorset 项
- node.js - 通过没有端口的链接打开 Angular Universal 应用程序