ng 命令解析之guard(各种路由守卫推倒表)

1.ng g guard guardName 是创建一个路由守卫,用于路由拦截,拦截的方式各种各样,比如  是否允许路由导航到的模块加载,加载前的数据获取,加载后的界面渲染,离开前的数据保存等

CanLoad 用来处理异步导航到某特性模块(是否允许加载模块,仅适用于自定义模块挂载在主路由上)

// user-canload.guard.ts
import { Injectable } from '@angular/core';
import { CanLoad, Route, UrlSegment, UrlTree } from '@angular/router';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class UserCanloadGuard implements CanLoad {
  canLoad(
    route: Route,
    segments: UrlSegment[]): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
      console.log(route.path);
    return this.isLogin();
  }
   
  // 检测是否允许加载这个路由模块  true 表示允许,false表示不允许
  isLogin(){
    console.log('load checking');
    return false;
  }
}
/// app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { AdminComponent } from './views/admin/admin.component'

import { UserCanloadGuard } from './guard/user-canload.guard' //引入
const routes: Routes = [
  {
    path: '',
    component:AdminComponent
  },
  {
    path: 'user',
    canLoad:[UserCanloadGuard], //可以添加多个守卫
    loadChildren: ()=>import('./module/user/user-routing.module').then(m=>m.UserRoutingModule)
  },
  {
    path: '**',
   
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值