diff --git a/npm/ng-packs/packages/identity/src/lib/components/route-wrapper.component.ts b/npm/ng-packs/packages/identity/src/lib/components/route-wrapper.component.ts new file mode 100644 index 0000000000..cb28bdfb36 --- /dev/null +++ b/npm/ng-packs/packages/identity/src/lib/components/route-wrapper.component.ts @@ -0,0 +1,18 @@ +import { Type, Component, OnInit } from '@angular/core'; +import { Router, ActivatedRoute } from '@angular/router'; + +@Component({ + selector: 'identity-route-wrapper', + template: ` + + `, +}) +export class RouteWrapperComponent implements OnInit { + defaultComponent: Type; + + constructor(private route: ActivatedRoute) {} + + ngOnInit() { + this.defaultComponent = this.route.snapshot.data.component.default; + } +} diff --git a/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts b/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts index 96764a09ad..661dd61f42 100644 --- a/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts +++ b/npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts @@ -1,8 +1,9 @@ -import { AuthGuard, DynamicLayoutComponent, PermissionGuard } from '@abp/ng.core'; -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; +import { AuthGuard, DynamicLayoutComponent, PermissionGuard, ABP, CoreModule } from '@abp/ng.core'; +import { NgModule, Type } from '@angular/core'; +import { RouterModule, Routes, Router, ActivatedRoute } from '@angular/router'; import { RolesComponent } from './components/roles/roles.component'; import { UsersComponent } from './components/users/users.component'; +import { RouteWrapperComponent } from './components/route-wrapper.component'; const routes: Routes = [ { path: '', redirectTo: 'roles', pathMatch: 'full' }, @@ -13,8 +14,14 @@ const routes: Routes = [ children: [ { path: 'roles', - component: RolesComponent, - data: { requiredPolicy: 'AbpIdentity.Roles' }, + component: RouteWrapperComponent, + data: { + requiredPolicy: 'AbpIdentity.Roles', + component: { + key: 'AbpIdentity.Roles', + default: RolesComponent, + } as ABP.ComponentData, + }, }, { path: 'users', @@ -26,7 +33,7 @@ const routes: Routes = [ ]; @NgModule({ - imports: [RouterModule.forChild(routes)], + imports: [RouterModule.forChild(routes), CoreModule], exports: [RouterModule], }) export class IdentityRoutingModule {} diff --git a/npm/ng-packs/packages/identity/src/lib/identity.module.ts b/npm/ng-packs/packages/identity/src/lib/identity.module.ts index 15b1b1c7cb..f80f11296b 100644 --- a/npm/ng-packs/packages/identity/src/lib/identity.module.ts +++ b/npm/ng-packs/packages/identity/src/lib/identity.module.ts @@ -10,9 +10,10 @@ import { UsersComponent } from './components/users/users.component'; import { PermissionManagementModule } from '@abp/ng.permission-management'; import { TableModule } from 'primeng/table'; import { NgxValidateCoreModule } from '@ngx-validate/core'; +import { RouteWrapperComponent } from './components/route-wrapper.component'; @NgModule({ - declarations: [RolesComponent, UsersComponent], + declarations: [RolesComponent, UsersComponent, RouteWrapperComponent], imports: [ NgxsModule.forFeature([IdentityState]), CoreModule,