如何根据条件配置Angular 5中的app-routing.module来加载两个子路由模块中的一个或另一个?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据条件配置Angular 5中的app-routing.module来加载两个子路由模块中的一个或另一个?相关的知识,希望对你有一定的参考价值。
我有以下应用程序:
├── 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只是基本的,因为这是应用程序的开始
APP-routing.module.ts
const routes: Routes = [
{ path: '**', redirectTo: "''", pathMatch: 'full' },
{ path: '' /*...*/ }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
我的问题是如何配置应用程序,以便app-routing.module中的路由''
根据auth.service中定义的条件指向home-routing.module中的路由''
,否则指向路由''
用户routing.module?家庭和用户各自拥有各自的子路线。
我的问题背后的逻辑是,我希望有两个独立的模块,一个用于用户可以在未经过身份验证时访问的部分,另一个用于经过身份验证的用户。一旦用户通过身份验证,我希望默认路由指向相关模块及其路由模块,具体取决于auth.service中定义的身份验证逻辑。
我意识到我可以使用canActivate
来保护用户模块,但是我找不到任何显示如何完成这种条件类型的路由逻辑的资源。
提前致谢
答案
没有办法。您应该使用canActivate并根据身份验证状态重定向到不同的路由。
以上是关于如何根据条件配置Angular 5中的app-routing.module来加载两个子路由模块中的一个或另一个?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 Kendo Grid Angular 4 中的条件为一列分配 2 个字段
如何根据Kendo Grid Angular 4中的条件为一列分配2个字段