Angular路由里的canActivate用法
看个具体的例子。
const CUSTOM_ROUTES: Routes = [{ path: "custom/:id", component: RouteDemoComponent,data:{ name: 'jerry'},canActivate: [CanActivateTeam] }
];
canActivate的类型是数组,而不是单个元素。
在app.module.ts的providers里,导入CanActivateTeam:
canActivateTeam的实现:
@Injectable()
export class CanActivateTeam implements CanActivate {constructor(private permissions: JerryPermissions, private currentUser: UserToken) {}canActivate(route: ActivatedRouteSnapshot,state: RouterStateSnapshot): Observable<boolean|UrlTree>|Promise<boolean|UrlTree>|boolean|UrlTree {return this.permissions.canActivate(this.currentUser, route.params.id);}
}
permissions的实现:
export class UserToken {}
export class JerryPermissions {canActivate(user: UserToken, id: string): boolean {console.log('Jerry');return true;}
}
运行时数据:
大部分字段的值都是从Route interface里带过来的。
使用依赖注入获得CanActivateTeam的实例:
根据token,对实例进行hydrate:
record里包含了Component 工厂:
依赖注入完成:
更多Jerry的原创文章,尽在:“汪子熙”:
Angular路由里的canActivate用法相关推荐
- angular路由详解
angular路由 路由 (route) ,几乎所有的 MVC(VM) 框架都应该具有的特性,因为它是前端构建单页面应用 (SPA) 必不可少的组成部分. 那么,对于 angular 而言,它自然也有 ...
- Angular 路由
Angular 路由 简单路由配置 每个带路由的 Angular 应用都有一个Router(路由器)服务的单例对象. 当浏览器的 URL 变化时,路由器会查找对应的 Route(路由),并据此决定该显 ...
- angular路由移除#号(跟nginx)
刚进公司,公司使用的angular.js(1.3.0),主管跟我说要我移除angular项目访问路径URL里的#号移除(针对百度seo问题后来发现angular天生不适合做seo). angularj ...
- Angular 路由的wild匹配
我如果在Angular Component里输入一个并不存在path配置的url,会遇到如下错误消息: ERROR Error: Uncaught (in promise): Error: Canno ...
- Angular 路由守卫
1. 路由 Angular路由: 可以控制页面跳转:可以在多视图间切换: 2. 路由守卫 Angular路由守卫: 在进入或离开某路由时,用于判断是否可以离开.进入某路由::: return true ...
- Angular 项目里 angular.json 文件内容的学习笔记
看一个基于 Angular 的 SAP Spartacus 项目里 angular.json 的例子: version: The configuration-file version. newProj ...
- Angular应用里setTimeout被如何被monkey patched的
monkey patched: monkey patch指的是在运行时动态替换,一般是在startup的时候. 下面的测试代码可以让我们弄清楚,浏览器支持的原生函数setTimeout,是如何在Ang ...
- Angular应用里的tsconfig.app.json
tsconfig.app.json是tsconfig.json的扩展: 在应用工程文件angular.json里的tsConfig字段处被引用: ng build后的输出: 2020年10月4日国庆节 ...
- Angular应用里的Template Reference变量
Angular应用里的Template Reference Variable,模板引用变量,用于创建一个对模板里DOM元素或者Angular指令的引用. 使用#号定义一个模板引用变量. 看个具体的例子 ...
最新文章
- 1、使用库函数计算两个向量的夹角
- Yii2.0 limit(1)与one()
- node 生成随机头像_微信头像新玩法?二次元头像自己捏,每款都独一无二
- 复合消隐信号的作用_南大《AFM》:可拉缩、粘合、导电的双信号柔性彩色薄膜...
- android xml黑体字_如何在 Android 上使用思源黑体作为系统字体?
- 如何在六个月或更短的时间内成为DevOps工程师(一)
- 这款应用,让Windows软件也能在Mac上使用起来
- 季节性ARIMA模型【R语言】
- 2023年太原理工大学水利工程考研考情与难度、参考书前辈备考经验
- 【Sentry使用】自定义transaction
- css动画旋转加平移实现3D图片墙
- 虚拟机安装kali linux
- Lora1278驱动V4.4.2讲解二:驱动多个SX1278芯片
- 【小y设计】二维码条形码打印编辑器
- 可以测试成果的背单词软件,实测背单词最好的软件排名,选了4款最管用的单词软件送给你!...
- 标准正态分布alpha分位点
- Data Structures in C++:八大基本数据结构概述
- CISSP-D2-资产安全
- 华为ensp搭建习题
- 2021大厂Java面试真题(一)
热门文章
- Prometheus Querying Function rate() vs irate()
- Oracle_零度笔记
- 轻量级的Ajax解决方案——DynAjax:直接在客户端调用C#类的方法
- linux7.3安装oracle12c release2
- fir.im Weekly - 2017 年必须了解的 iOS 开源库
- 解决VS2012 Express的There was a problem sending the command to the program问题
- 艾伟:ASP.NET实用技巧(一)
- .NET建议使用的大小写命名原则
- 方立勋_30天掌握JavaWeb_Servlet Filter(过滤器)未完
- 关闭Mycelipse的拼写检查