Angular 角度子模块子路由不工作。无法匹配任何路由

Angular 角度子模块子路由不工作。无法匹配任何路由,angular,typescript,routing,Angular,Typescript,Routing,在创建包含子路由的模块并尝试在它们之间导航时,我会遇到此错误 应用程序路由.module.ts const routes: Routes = [ { path: '', pathMatch: 'full', redirectTo: '/login' }, { path: 'login', component: LoginComponent }, { path: 'admin', loadChildren: 'app/admin/admin.module#AdminModule'

在创建包含子路由的模块并尝试在它们之间导航时,我会遇到此错误

应用程序路由.module.ts

const routes: Routes = [
   { path: '', pathMatch: 'full', redirectTo: '/login' },
   { path: 'login', component: LoginComponent },
   { path: 'admin', loadChildren: 'app/admin/admin.module#AdminModule', 
     canActivate: [AuthGuard] },
 const routes: Routes = [
  {
    path: "",
    redirectTo: "welcome",
    pathMatch: "full"
  },
  {
    path: "",
    component: AdminComponent,
    children: [
  {
    path: "welcome",
    component: WelcomeComponent
  },
  {
    path: "challenge/leaders",
    component: ChallengeLeadersComponent
  },
  {
    path: "challenge/collaborators/:id",
    component: ChallengeCollaboratorsComponent
  },
 ]}
];
app/admin/admin routing.module.ts

const routes: Routes = [
   { path: '', pathMatch: 'full', redirectTo: '/login' },
   { path: 'login', component: LoginComponent },
   { path: 'admin', loadChildren: 'app/admin/admin.module#AdminModule', 
     canActivate: [AuthGuard] },
 const routes: Routes = [
  {
    path: "",
    redirectTo: "welcome",
    pathMatch: "full"
  },
  {
    path: "",
    component: AdminComponent,
    children: [
  {
    path: "welcome",
    component: WelcomeComponent
  },
  {
    path: "challenge/leaders",
    component: ChallengeLeadersComponent
  },
  {
    path: "challenge/collaborators/:id",
    component: ChallengeCollaboratorsComponent
  },
 ]}
];
app/admin/components/challenge/challenge leaders.html

  <a [routerLink]="['challenge/collaborators', user.id]">

我得到的错误是


错误:无法匹配任何路由。URL段:“admin/challenge/leaders/challenge/collaborators/ab5738”

这是因为您为/admin指定了两条空路由,即重定向到欢迎和 AdminComponent的其他功能。相反,您的第一个空路由应该在子数组中,并且您没有为质询指定任何路由。挑战/领导者应该是挑战的孩子

const routes:routes=[
{
路径:,//这是/admin
组件:AdminComponent,
儿童:[
{
路径:“欢迎”//这是/admin/welcome
组件:WelcomeComponent
},
{
路径:“challenge”,//这是/admin/challenge
组件:ChallengeComponent,
儿童:[
{path:'leader',component:ChallengeLeaderComponent},//这是/admin/challenge/leader
{path:'collaborators',component:ChallengeCollaboratorsComponent},//这是/admin/challenge/collaborators
{path:'collaborators/:id',component:ChallengeCollaboratorComponent},//这是/admin/challenge/collaborators/someId
{路径:'',重定向到:'leader',路径匹配:'full'}
]
},
{
路径:“”,
重定向至:“欢迎”,
路径匹配:“已满”
}
]}

];您好,实际上您的路由器链接有问题。您的错误显示为 “错误:无法匹配任何路由。URL段:'admin/challenge/leaders/challenge/collaborators/ab5738'”

路径应为“管理/挑战/合作者/ab5738”,而不是“管理/挑战/领导者/挑战/合作者/ab5738”

您可以将路由器链接设置为绝对路径或相对路径; 您可以查看此答案以了解更多说明。

这很有效!谢谢,我只需要将routerLink更改为