【发布时间】:2018-08-13 18:19:35
【问题描述】:
我正在尝试遵循 Angular 中的功能模块方法。
我有一个带有管理模块的应用程序。 此模块中将包含子模块(即用户管理、项目管理)。
下面是我想出的结构:
app.component.css
app.component.html
app.component.ts
app.module.ts
app-routing.module.ts
admin/
admin.component.css
admin.component.html
admin.component.ts
admin.module.ts
admin-routing.module.ts
user-management/
user-management.component.css
user-management.component.html
user-management.component.ts
user-management.module.ts
user-management-routing.module.ts
user-list/
user-list.component.css
user-list.component.html
user-list.component.ts
user-detail/
user-detail.component.css
user-detail.component.html
user-detail.component.ts
project-management/
project-management.component.css
project-management.component.html
project-management.component.ts
project-management.module.ts
project-management-routing.module.ts
project-list/
project-list.component.css
project-list.component.html
project-list.component.ts
project-detail/
project-detail.component.css
project-detail.component.html
project-detail.component.ts
如果我错了,请纠正我,但我相信上述结构是教科书式的。我真的很难用这种方法进行路由。
请在下方查看我的路线:
const appRoutes: Routes = [
{ path: 'admin', loadChildren: './admin/admin.module#AdminModule', canLoad:
[AuthGuard] },
{ path: '', redirectTo: '/login', pathMatch: 'full' },
{ path: '**', component: PageNotFoundComponent }
];
const adminRoutes: Routes = [
{
path: '',
component: AdminComponent,
canActivate: [AuthGuard],
children: [
{
path: '',
canActivateChild: [AuthGuard],
children: [
{ path: 'users', component: UserManagementComponent },
{ path: 'projects', component: ProjectManagementComponent }
]
}
]
}
];
const manageUsers: Routes = [
{path: 'users', component: UserListComponent},
{path: 'users/edit/:id', component: UserDetailComponent}
];
const manageProjects: Routes = [
{path: 'projects', component: ProjectListComponent},
{path: 'projects/edit/:id', component: ProjectDetailComponent}
];
我希望导航的方式如下:
/admin(除了 admin.component.html 布局之外什么都不显示 - 总有一天会显示仪表板组件)
/admin/users(显示用户列表)
/admin/users/edit/1(显示用户的详细信息)
我认为我的主要困难在于我有一个用户管理组件,而默认情况下真正应该在其上显示的是用户列表组件。 admin.component.html 中有一个 router-outlet,user-management.component.html 中有一个 router-outlet。这样的事情是否需要双路由出口,还是应该直接在 user-management-component.html 页面上显示而不是路由器出口?
【问题讨论】:
标签: angular typescript angular-routing