【问题标题】:Updating parameters in route Angular更新路由Angular中的参数
【发布时间】:2020-02-21 15:00:03
【问题描述】:

我有一个包含两个参数的路由,我正在尝试更新它(只是 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.js angular routing url-routing


    【解决方案1】:
    this.router.navigate(['/yoururl'], { queryParams: { type: someVariable, entity: someVariable } });
    

    希望对您有所帮助!

    问候

    【讨论】:

    • 但是“你的网址”是什么?整个网址?
    • 哦,你不需要参数。现在我看到您只想创建一个全新的 URL,例如“levs/clickedLev/clickedLevId”。在这种情况下,您可以只使用: this.location.replaceState('levs/clickedLev/clickedLevId');
    • 我确实想更新两个参数,但是我已经在ts文件中,所以我只是不知道如何使用路由器来替换它们。你能举个例子吗?我想不通,即使使用replaceUrl 属性它仍然显示同样的问题
    • 我解决了它并为问题添加了解决方案。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 2017-05-10
    • 2019-07-14
    • 2017-01-16
    • 2016-06-07
    • 2020-09-05
    相关资源
    最近更新 更多