无法路由到 Angular 中的正确组件

Can't route to correct component in Angular

不确定我是否正确设置了路由。 我似乎无法使用

路由到 'MemberEditComponent'
[routerLink]="['/members/edit']"

这是我的会员模块的应用程序路由部分

{
  path: 'members',
  runGuardsAndResolvers: 'always',
  canActivate: [AuthGuard],
  loadChildren: () =>
    import ('./members/members.module')
    .then(mod => mod.MembersModule)
},

这是我的成员路由文件,其中路由到成员工作正常,路由到 '/members/1' 工作正常,但我不知道如何路由到 '/members/edit'

我都试过了

path: ':edit',

path: '/edit',

path: 'edit',

和none工作

const routes: Routes = [{
    path: '',
    component: MembersComponent
  },
  {
    path: ':id',
    component: MemberDetailsComponent,
    resolve: {
      user: MemberDetailResolver
    }
  },
  {
    path: ':edit',
    component: MemberEditComponent,
    canDeactivate: [PreventUnsavedChangesGuard]
  },
];

那是因为,在你的路由中,你指定了 2 个可以读取相同的参数,所以默认情况下,如果你访问 /members/edit,它将首先登陆你的 MemberDetailsComponent 作为angular 将您的 /edit 视为 MemeberDetailsComponent

:id 参数
{
    path: ':id',
    component: MemberDetailsComponent,
    resolve: {
      user: MemberDetailResolver
    }
  },
{
    path: ':edit',
    component: MemberEditComponent,
    canDeactivate: [PreventUnsavedChangesGuard]
},

相反,您可以这样实现它:

{
    path: 'edit',                                   // without :, so this will be matched first if the route has /edit in it
                                                    // or edit/:id if you are editing something in this component
    component: MemberEditComponent,
    canDeactivate: [PreventUnsavedChangesGuard]
},
{
    path: ':id',
    component: MemberDetailsComponent,
    resolve: {
      user: MemberDetailResolver
    }
},