角2个路线PARAMS在子路由
问题描述:
我有一个路径:/应用程序/项目/ 23 /视图角2个路线PARAMS在子路由
路径的每个部分是前一部分的孩子,所有的孩子都懒加载(不知道的这里延迟加载位是相关的)
/app (root component)
/project (child component of app, child route of app)
/23 (route param 'projectId')
/views (child component of project, child route of project)
我试图访问路线参数 '专案编号'(在这种情况下:23)
执行以下操作:
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params.subscribe(params => {
console.log('params:', params);
}
让我对this.route.params
params: {}
一个空的对象。然而这样做:
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.parent.parent.params.subscribe(params => {
console.log('params:', params);
}
给我什么我在寻找:
params: Object {projectId: "23"}
因为它是一个孩子的路线,我必须指定this.route。 parent.parent获取(某些)父路由的路由参数?
有来自全途径获取则params的没有更好的办法,因为如果发生了什么:
1)我改变孩子航线的深度和移动它一个步骤下来。我是否必须现在更改我的代码来说this.route。 parent.parent.parent .params
2)或者说它是第10代(子代,子代?,伟大 - 曾孙?)。然后我必须说:this.route。 parent.parent.parent.parent.parent.parent.parent.parent.parent .params
---编辑:添加了路由配置文件---
app.routing.ts
const routes: Routes = [
{path: 'app', loadChildren: './views/private/private.module#PrivateModule'}
];
private.routing.ts
const routes: Routes = [{
path: '',
component: PrivateComponent,
children: [
{path: 'project', loadChildren: './project/project.module#ProjectModule'},
{path: '', redirectTo: 'project', pathMatch: 'full'}
]
个project.routing.ts
const routes: Routes = [{
path: ':projectId',
component: ProjectComponent,
children: [
{path: 'views', loadChildren: './views/views.module#ViewsModule'},
{path: '', redirectTo: 'views', pathMatch: 'full'}
]
答
您可以pathFromRoot
属性访问路线的树,它返回的3210与所有父母的数组。
this.route.pathFromRoot[2].params
请问您能否显示您的所有路由配置。你想在哪个组件中访问'params'? – mxii
@mxii添加了route-configs – Nik