子路由中父路由的Angular get param仅适用于路径为空的路由

子路由中父路由的Angular get param仅适用于路径为空的路由,angular,routes,Angular,Routes,我有一个奇怪的问题,我有以下路线设置: const routes:routes=[ {路径:“”,组件:AnicoComponent,子级:[ {path:'someurl/:id',component:AnOtherComponent,canActivate:[usersignedingguard],子项:[ {路径:'something',组件:ASubComponent,路径匹配:'full'}, {路径:'',组件:AmaInsupPageComponent,路径匹配:'full'} ]

我有一个奇怪的问题,我有以下路线设置:

const routes:routes=[
{路径:“”,组件:AnicoComponent,子级:[
{path:'someurl/:id',component:AnOtherComponent,canActivate:[usersignedingguard],子项:[
{路径:'something',组件:ASubComponent,路径匹配:'full'},
{路径:'',组件:AmaInsupPageComponent,路径匹配:'full'}
]}
]}
];
amainsubpage组件中
我可以访问
id
参数。在
ASubComponent
中,我无法访问
id
参数。我尝试将路径
'something'
更改为
'
,反之亦然。有了这一点,我现在知道空的路径是可行的,但不是空的路径是行不通的

我以同样的方式访问路线,并确保我没有遗漏任何东西,也没有以同样的方式执行。测试(我更改了测试的路径)也表明这是由非空路径引起的。这是我访问参数的方式:

this.routeSub = this.route.paramMap.pipe(
      map(params => {
        console.log(params);
      })
    ).subscribe();
我错过什么了吗? 对不起,我的英语不好。

您可以引用活动路由的,以访问父参数

this.routeSub=this.route.parent.paramMap.pipe(
映射(参数=>{
控制台日志(params);
})
).subscribe();

谢谢!这对我有用。它是打算使用parent来实现这一目的,还是应该在没有parent的情况下工作?我只是想知道为什么这在路径为空的路线上有效,而在路径为空的路线上无效path@NeXuS父级和子级可以具有相同名称的参数。这就是为什么它们是分开的(所以没有碰撞)。我要做的是在父对象中获取参数,并将其作为可观察对象放入共享服务中。这使得以后更容易更改路由,而不必查找应用程序中使用paramMap的位置。