Angular 6的guard/canActivate只能应用于主路由而不能应用于次级出口。
创始人
2024-10-16 07:00:56
0

在Angular 6中,guard/canActivate守卫只能应用于主路由,而不能直接应用于次级出口。但是可以通过一些修改来实现在次级出口中使用守卫的效果。

一种解决方法是在主路由中使用canActivate守卫,然后在次级出口中通过使用canActivateChild守卫来实现类似的效果。以下是一个代码示例:

首先,在主路由中定义canActivate守卫:

import { Injectable } from '@angular/core';
import { CanActivate } from '@angular/router';

@Injectable()
export class MyGuard implements CanActivate {
  canActivate() {
    // 在这里放置你的验证逻辑
    return true; // 或者返回一个Observable 或者Promise
  }
}

然后,在主路由中应用canActivate守卫:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { MyGuard } from './my.guard';

const routes: Routes = [
  {
    path: '',
    canActivate: [MyGuard],
    children: [
      // 定义次级出口
      {
        path: 'child',
        loadChildren: './child/child.module#ChildModule'
      }
    ]
  }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule],
  providers: [MyGuard]
})
export class AppRoutingModule { }

最后,在次级出口中定义canActivateChild守卫:

import { Injectable } from '@angular/core';
import { CanActivateChild } from '@angular/router';

@Injectable()
export class MyChildGuard implements CanActivateChild {
  canActivateChild() {
    // 在这里放置你的验证逻辑
    return true; // 或者返回一个Observable 或者Promise
  }
}

并在次级出口的路由模块中应用canActivateChild守卫:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { MyChildGuard } from './my-child.guard';
import { ChildComponent } from './child.component';

const routes: Routes = [
  {
    path: '',
    component: ChildComponent,
    canActivateChild: [MyChildGuard]
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule],
  providers: [MyChildGuard]
})
export class ChildRoutingModule { }

通过这种方式,你可以在主路由中使用canActivate守卫,在次级出口中使用canActivateChild守卫来实现类似的效果。

相关内容

热门资讯

第6分钟辅助!德扑HHpoke... 第6分钟辅助!德扑HHpoker有挂吗,hardrock透视工具,方案教程(了解有挂)1、下载好德扑...
第7分钟辅助!wepoker可... 第7分钟辅助!wepoker可以开透视吗,epoker免费透视脚本,指南教程(有挂教学)1、首先打开...
三分钟辅助!wepoker免费... 三分钟辅助!wepoker免费脚本咨询,aapoker如何设置胜率,手册教程(果真有挂)1、很好的工...
第7分钟辅助!wepoker私... 第7分钟辅助!wepoker私人局辅助,hhpoker是真的还是假的,法子教程(有挂透明挂)hhpo...
四分钟辅助!wepoker分析... 四分钟辅助!wepoker分析,werplan怎么透视,模板教程(有挂方式)该软件可以轻松地帮助玩家...
第6分钟辅助!哈糖大菠萝软件下... 第6分钟辅助!哈糖大菠萝软件下载,aapoker怎么开辅助器,法子教程(证实有挂)1、哈糖大菠萝软件...
七分钟辅助!hhpoker透视... 七分钟辅助!hhpoker透视方法,we poker辅助器下载,机巧教程(有挂存在)1、we pok...
三分钟辅助!werplan免费... 三分钟辅助!werplan免费挂下载,拱趴大菠萝挂怎么安装,项目教程(有挂方针)1、完成拱趴大菠萝挂...
第9分钟辅助!wpk透视辅助靠... 第9分钟辅助!wpk透视辅助靠谱吗,wepoker透视脚本视频,机巧教程(有挂教学)wepoker透...
第十分钟辅助!werplan辅... 您好,wepoker游戏安装教程这款游戏可以开挂的,确实是有挂的,需要了解加去威信【13670430...