儿童路线中的Angular 2 Route Params
我有一条路线:/ app / project / 23 / views
路径的每个部分都是前一部分的子节点,并且所有子节点都是延迟加载的(不确定此处的延迟加载位是否相关) /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) 我正在尝试访问路由参数’projectId'(在这种情况下: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来获取(某些)父路由的路由参数? 是否有更好的方法从完整路线获取参数因为如果发生以下情况会发生什么: 1)我改变了儿童路线的深度,再向下移动一步.我现在必须更改我的代码才能说出.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'},redirectTo: 'views',pathMatch: 'full'} ] 解决方法
您可以使用pathFromRoot属性访问路径树,它会返回包含所有父项的ActivatedRoutes数组.
this.route.pathFromRoot[2].params (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |