gpt4 book ai didi

angular - 如何在 Angular 2 项目中分离管理员和前端网络

转载 作者:行者123 更新时间:2023-12-03 23:14:01 26 4
gpt4 key购买 nike

我将使用 Angular 2 构建一个完整的项目,该项目包含管理面板和用户的前端 Web。

我不知道如何将管理员与网络分开,我应该为此使用路由吗?但这需要我导入 app.module.ts 中的所有组件。或者还有另一种方法可以使用两个 app.module.ts一个用于网络,一个用于管理员?

或者我应该怎么做?

最佳答案

我最近建立了这个,我所做的只是将路线分成两个不同的模块。

所以你会有这个:

- +admin
- routes
- +dashboard
- +login
- ... etc
- +website
- routes
- +home
- +profile
- ... etc

那么你想要做的是使用 canLoad如果您无权这样做,请保护以防止加载模块。这将保护前端的管理区域,除非您是具有该权限的管理员,否则代码不会暴露。

如果您不想将项目拆分为两个较小的项目,这是最简单的方法。我个人不会这样做,因为跨应用程序共享内容变得更加复杂。

编辑:

路由看起来像这样:
const routes: Routes = [
{
path: '',
loadChildren: 'app/+website/website.module#WebsiteModule'
},
{
path: 'admin',
loadChildren: 'app/+admin-area/admin-area.module#AdminAreaModule'
}
];

@NgModule({
imports: [
RouterModule.forRoot(routes)
],
exports: [
RouterModule,
AppComponent
],
declarations: [
AppComponent
]
})

export class AppRouterModule {}

所以只需转到 /admin将加载管理区域模块,该模块将具有另一个路由器模块,如下所示:
const routes: Routes = [
{
path: '',
component: AdminAreaComponent,
children: [
{
path: 'login',
loadChildren: 'app/+admin-area/pages/+login/login.module#LoginModule'
},
{
path: 'dashboard',
loadChildren: 'app/+admin-area/pages/+dashboard/dashboard.module#DashboardModule',
canLoad: [AuthGuardService]
}
]
}
];

@NgModule({
imports: [
ComponentsModule,
SharedModule,
RouterModule.forChild(routes)
],
declarations: [
AdminAreaComponent
]
})

export class AdminAreaRouterModule {}

在这里你可以看到 /admin/dashboard由检查用户 Angular 色的守卫保护。

关于angular - 如何在 Angular 2 项目中分离管理员和前端网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44226608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com