我有以下申请:
├── app.component.html
├── app.component.ts
├── app.module.ts
├── app-routing.module.ts
├── modules
│ ├── home
│ │ ├── components
│ │ ├── home.module.ts
│ │ └── home-routing.module.ts
│ └── user
│ ├── components
│ ├── services
│ │ └── auth-guard.service.ts
│ ├── user.module.ts
│ └── user-routing.module.ts
└── shared
├── components
│ └── navbar
│ ├── navbar.component.html
│ ├── navbar.component.scss
│ └── navbar.component.ts
├── services
│ └── auth.service.ts
└── shared.module.ts
app-routing.module只是基本的,因为这是应用程序的开始
应用-routing.module.ts
const routes: Routes = [
{ path: '**', redirectTo: "''", pathMatch: 'full' },
{ path: '' /*...*/ }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
我的问题是我如何配置应用程序,以便app-routing.module中的路由''
指向home-routing.module中的路由''
基于auth.service中定义的条件,以及user-routing.module中定义的路由''
?家庭和用户各自拥有各自的子路线。
我的问题背后的逻辑是,我希望有两个单独的模块,一个用于用户可以在未经过身份验证时访问的部分,另一个用于经过身份验证的用户。一旦用户通过身份验证,我希望默认路由指向相关模块及其路由模块,具体取决于auth.service中定义的身份验证逻辑。
我意识到我可以使用canActivate
来保护用户模块,但是我找不到任何显示我如何完成这种条件路由逻辑的资源。
提前致谢
答案 0 :(得分:0)
没有办法。您应该使用canActivate并根据身份验证状态重定向到不同的路由。