繁体   English   中英

Angular2:授权路由之后

[英]Angular2: After authorization routing

我有一个管理面板,我正在使用路由器移动到页面。 管理面板将由侧栏(组件),标题(组件)和内容(组件)组成。 在内容中,我放入了<router-outlet></router-outlet> 当我使用LoginComponent进行页面化时,页面中会显示侧边栏和标题,因为<router-outlet></router-outlet>里面的内容。 我对可见性sidebar(Component),header(Component)使用指令* ngIf,但我认为这不是最佳实践。 我可以使用其他变体吗? 我的文件夹结构: 在此处输入图片说明

我使用“ loadChildren”来解决此问题。 这段代码在app.routing.module.ts中

const routes: Routes = [
       { path: '', redirectTo: '/dashboard', pathMatch: 'full' },
       { path: 'dashboard', loadChildren: () => DashboardModule, canActivate: [AuthGuard]}, 
       { path: 'login',  component: LoginComponent}
 ]

此代码在dashboard-routing.module.ts中

const dashboardRoutes: Routes = [
{
 path: '',
 component: DashboardComponent,
 children : [
       { 
         path: '', 
         children:[
                   { path: 'user',  component: UserComponent, canActivate: [DashboardGuard] },
                   { path: 'user-crud',  component: UserCrudComponent, canActivate: [DashboardGuard] },
                   { path: 'user-crud/:id',  component: UserCrudComponent, canActivate: [DashboardGuard] }
                  ]
       },

经过授权后,app.component.ts中的这段代码将加载dashboard.module,并显示在此组件的<router-outlet></router-outlet>中。

import { Component, OnInit} from '@angular/core';
  @Component({
       selector: 'app-root',
       template: '<router-outlet></router-outlet>'
  })

 export class AppComponent implements OnInit {
     constructor(){}
     ngOnInit() {}
 }

此代码位于content.component.ts中,所有页面均在此组件中显示。

import { Component, OnInit } from '@angular/core';
   @Component({
       selector: 'app-content',
       template: '<router-outlet></router-outlet>'
   })
export class ContentComponent implements OnInit {
   constructor() {}
   ngOnInit() {}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM