Angular - 子路由的路由参数

Angular - Route Params for child routes

我有以下路由配置。如何从项目编辑组件内部访问在父路由中看到的 :projectId

 {
        path: 'folders/:folderId/projects/:projectId/s',
        component: ProjectDetailComponent,
        canActivate: [AuthGuardService],
        children: [
            {
                path: 'edit',
                component: ProjectEditComponent,
                canActivate: [AuthGuardService],
            },
            {
                path: 'i',
                component: IssuesListComponent,
                canActivate: [AuthGuardService],
            },
        ],        
    },

我以前在没有子路由时使用过这种方法:

this.activatedRoute.params.subscribe((urlParameters) => {
  this.project_id = urlParameters['projectId'];
});

不幸的是,这不再有效。

您应该可以使用 ActivatedRoute parent 属性:

访问父路由参数
this.activatedRoute.parent.params.subscribe((urlParameters) => {
  this.project_id = urlParameters['projectId'];
});

可以提取父组件中的projectId,通过@Input

传给两个子组件