本文介绍了angular笔记路由之angular-router,分享给大家,具体如下:
创建项目
文件
路由的基本使用
简介 |
---|
路由对象图示
路由基本配置
路由通配符配置
404Component}
// 配置里面加一条代表没有的都往这里,注意这里不能写在前面,不然angualr的路由会优先匹配这里
在js里面跳转路由
路由数据传递
1、在查询参数中传递数据
ActivatedRoute.queryParams[id]
//html写法
// js写法
private appId:number
constructor(private routerInfo:ActivatedRoute) { }
ngOnInit() {
this.appId = this.routerInfo.snapshot.queryParams['id']
}
2、在路由路径中传递数据
3、在路由配置中传递数据
代码如下:
ActivatedRoute.data[0][IsProd]
参数快照和参数订阅
snapshot 是参数快照当路由进入该组件的时候,然后再点击按钮进入该路由路由里面的的ngOnInit()方法只执行一次,已经被激活,说以第二次这个不会被执行
subscribe 是参数订阅,这个属于RxJs的东西
constructor(private routerInfo:ActivatedRoute) { }
ngOnInit() {
this.routerInfo.params.subscribe((params:Params) => {
this.appId = params['id']
})
}
重定向路由
子路由
添加 指令
辅助路由
路由守卫
多表单组成的向导,如注册流程,只有满足条件才能进入下一个路由
说明 |
---|
1.CanAxtivate的使用
文件
import {CanActivate} from '@angular/router'
export class LoginGuard implements CanActivate{
// 路由会根据这个方法的返回如果返回false就拒绝访问
canActivate(){
let isLOgin:boolean = true;
return isLOgin;
}
}
canActivate是一个数组,可以接收多个,当每一个都返回true时候才允许
修改路由配置,添加一个属性canActivate
{path:'home',component:IndexComponent}
],canActivate:[LoginGuard]},修改NgModule
providers:[LoginGuard]
2.CanDeactivate的使用
文件
import {CanDeactivate} from '@angular/router'
import {AppComponent} from "../app.component";
/**
- 处理用户离开
- 接收一个泛型
*/
export class OutGuard implements CanDeactivate{
// component 里面保存着AppComponent的数据
canDeactivate(component:AppComponent){
return window.confirm('您还没有保存确定要离开吗?')
}
}
修改路由的配置