const routes:Routes = [{
path:'',
component,
children:[
{
path:'person-worktable',
loadChildren: () => import('/worktable/worktable.module').then(m => m.worktableModule),
data:{tag:'person-worktable'},
},
{
path:'unit-worktable',
loadChildren: () => import('/worktable/worktable.module').then(m => m.worktableModule),
data:{tag:'unit-worktable'},
},
]
}]
在多个路由使用同一个模块组件时,我们通常会传入标识符用于区分,这时就可以在父模块配置子路由的时候,传入data字段,用于区分,使相同的组件完成不同的内容渲染。可以用于在路由配置中设置解析守卫并将数据传递给组件。
import { ActivatedRoute } from '@angular/router';
export class worktableModule{
constructor(private activatedRoute: ActivatedRoute) {}
getRouteData() {
let data = this.activatedRoute.snapshot.data;
console.log(data); // 输出当前路由的数据
}
}
在组件中使用this.activatedRoute.snapshot.data取到传递过来的数据。
-
this.activatedRoute
: 当前激活的路由,由Angular Router服务提供。 -
snapshot
: 提供当前路由的一个快照,包含路由的静态数据。 -
data
: 快照中的数据属性,返回当前路由配置中指定的任何数据。