Browse Source

Merge pull request #10864 from abpframework/fix/10781

Angular UI: Fixed a problem with component initialization
pull/10865/head
Bunyamin Coskuner 5 years ago
committed by GitHub
parent
commit
73fca647cb
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      npm/ng-packs/packages/account/src/lib/account-routing.module.ts
  2. 15
      npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts
  3. 8
      npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts
  4. 6
      npm/ng-packs/packages/setting-management/src/lib/setting-management-routing.module.ts
  5. 4
      npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts

4
npm/ng-packs/packages/account/src/lib/account-routing.module.ts

@ -1,8 +1,8 @@
import { import {
AuthGuard, AuthGuard,
DynamicLayoutComponent,
ReplaceableComponents, ReplaceableComponents,
ReplaceableRouteContainerComponent, ReplaceableRouteContainerComponent,
RouterOutletComponent,
} from '@abp/ng.core'; } from '@abp/ng.core';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
@ -18,7 +18,7 @@ const routes: Routes = [
{ path: '', pathMatch: 'full', redirectTo: 'login' }, { path: '', pathMatch: 'full', redirectTo: 'login' },
{ {
path: '', path: '',
component: DynamicLayoutComponent, component: RouterOutletComponent,
children: [ children: [
{ {
path: 'login', path: 'login',

15
npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts

@ -1,4 +1,4 @@
import { Component, Injector, Optional, SkipSelf, Type } from '@angular/core'; import { Component, Injector, isDevMode, Optional, SkipSelf, Type } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { eLayoutType } from '../enums/common'; import { eLayoutType } from '../enums/common';
import { ABP } from '../models'; import { ABP } from '../models';
@ -13,13 +13,7 @@ import { TreeNode } from '../utils/tree-utils';
@Component({ @Component({
selector: 'abp-dynamic-layout', selector: 'abp-dynamic-layout',
template: ` template: ` <ng-container *ngIf="isLayoutVisible" [ngComponentOutlet]="layout"></ng-container> `,
<ng-container *ngTemplateOutlet="layout ? componentOutlet : routerOutlet"></ng-container>
<ng-template #routerOutlet><router-outlet></router-outlet></ng-template>
<ng-template #componentOutlet
><ng-container *ngIf="isLayoutVisible" [ngComponentOutlet]="layout"></ng-container
></ng-template>
`,
providers: [SubscriptionService], providers: [SubscriptionService],
}) })
export class DynamicLayoutComponent { export class DynamicLayoutComponent {
@ -47,7 +41,10 @@ export class DynamicLayoutComponent {
private routerEvents: RouterEvents, private routerEvents: RouterEvents,
@Optional() @SkipSelf() dynamicLayoutComponent: DynamicLayoutComponent, @Optional() @SkipSelf() dynamicLayoutComponent: DynamicLayoutComponent,
) { ) {
if (dynamicLayoutComponent) return; if (dynamicLayoutComponent) {
if (isDevMode) console.warn('DynamicLayoutComponent must be used only in AppComponent.');
return;
}
this.route = injector.get(ActivatedRoute); this.route = injector.get(ActivatedRoute);
this.router = injector.get(Router); this.router = injector.get(Router);
this.routes = injector.get(RoutesService); this.routes = injector.get(RoutesService);

8
npm/ng-packs/packages/identity/src/lib/identity-routing.module.ts

@ -1,9 +1,7 @@
import { import {
AuthGuard, AuthGuard, PermissionGuard,
DynamicLayoutComponent,
PermissionGuard,
ReplaceableComponents, ReplaceableComponents,
ReplaceableRouteContainerComponent, ReplaceableRouteContainerComponent, RouterOutletComponent
} from '@abp/ng.core'; } from '@abp/ng.core';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
@ -16,7 +14,7 @@ const routes: Routes = [
{ path: '', redirectTo: 'roles', pathMatch: 'full' }, { path: '', redirectTo: 'roles', pathMatch: 'full' },
{ {
path: '', path: '',
component: DynamicLayoutComponent, component: RouterOutletComponent,
canActivate: [AuthGuard, PermissionGuard, IdentityExtensionsGuard], canActivate: [AuthGuard, PermissionGuard, IdentityExtensionsGuard],
children: [ children: [
{ {

6
npm/ng-packs/packages/setting-management/src/lib/setting-management-routing.module.ts

@ -1,8 +1,8 @@
import { import {
DynamicLayoutComponent, AuthGuard,
ReplaceableComponents, ReplaceableComponents,
ReplaceableRouteContainerComponent, ReplaceableRouteContainerComponent,
AuthGuard, RouterOutletComponent,
} from '@abp/ng.core'; } from '@abp/ng.core';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
@ -12,7 +12,7 @@ import { eSettingManagementComponents } from './enums/components';
const routes: Routes = [ const routes: Routes = [
{ {
path: '', path: '',
component: DynamicLayoutComponent, component: RouterOutletComponent,
canActivate: [AuthGuard], canActivate: [AuthGuard],
children: [ children: [
{ {

4
npm/ng-packs/packages/tenant-management/src/lib/tenant-management-routing.module.ts

@ -1,9 +1,9 @@
import { import {
AuthGuard, AuthGuard,
DynamicLayoutComponent,
PermissionGuard, PermissionGuard,
ReplaceableComponents, ReplaceableComponents,
ReplaceableRouteContainerComponent, ReplaceableRouteContainerComponent,
RouterOutletComponent,
} from '@abp/ng.core'; } from '@abp/ng.core';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
@ -15,7 +15,7 @@ const routes: Routes = [
{ path: '', redirectTo: 'tenants', pathMatch: 'full' }, { path: '', redirectTo: 'tenants', pathMatch: 'full' },
{ {
path: '', path: '',
component: DynamicLayoutComponent, component: RouterOutletComponent,
canActivate: [AuthGuard, PermissionGuard, TenantManagementExtensionsGuard], canActivate: [AuthGuard, PermissionGuard, TenantManagementExtensionsGuard],
children: [ children: [
{ {

Loading…
Cancel
Save