我有一个登录页面和一个延迟加载的模块,其子模块构成了应用程序中的大部分页面。这里看看 app-routing.module.ts
const routes: Routes = [{
path: '',
loadChildren: './main/main.module#MainModule'
},
{
path: '',
component: LoginLayoutComponent,
children: [{
path: 'login',
component: LoginComponent
}]
},
{
path: '**',
component: PageNotFoundComponent
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {}
现在我有一个有几个子页面的主模块。我们来看看 main-routing.module.ts
onst routes: Routes = [{
path: '',
canActivate: [AuthGuard],
component: LayoutComponent,
children: [{
path: '',
redirectTo: 'home',
pathMatch: 'full'
},
{
path: 'home',
component: HomeComponent
},
{
path: 'user',
loadChildren: './user/user.module#UserModule'
},
{
path: 'dashboard',
loadChildren: './dashboard/dashboard.module#DashboardModule'
},
{
path: '**',
component: PageNotFoundComponent
}
]
}];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class MainRoutingModule {}
在 RouteGuard 中,如果用户未登录,我们将他们重定向到 /login
this.router.navigate(['/login']);
问题是路由器试图path:'login'
在 MainRoutingModule 的路由中查找,而“登录”实际上是 AppRoutingModule 路由的一部分。任何帮助,将不胜感激。