首页 > 解决方案 > 用角度4中的routerLink替换当前动态参数

问题描述

假设我在角度 4 中有这样的路线:

/:study_id/folders/:folder_id

我想创建一个只替换:folder_id

我试过这个:

<a [routerLink]="[folder.id]">a</a>

但这会将 folder_id 附加到现有路由上,因此它变为

/:study_id/folders/:folder_id/:folder_id

我想替换:folder_id而不必指定 url 的所有其他部分。

标签: angular

解决方案


您可以将选项传递给 routerLink 指令:angular.io/api/router/NavigationExtras

在组件中:

    import { ActivatedRoute, Router } from "@angular/router";

          constructor(
            private router:Router,
            public route: ActivatedRoute) {  
          }

          navigate(folder){
            this.router.navigate([folder.id], { relativeTo: this.route });
          }

在标记中:

<a (click)="navigate(folder)"></a>

推荐阅读