我在route.ts中有这个。
path: 'profile/:id',
component: ProfileComponent,
canActivate: [SiteRouteGuard],
children: [
{
path: 'albums',
component: AlbumsComponent,
canActivate: [SiteRouteGuard]
},
...
]
现在在我的个人资料中。我得到了这个
localhost:4200/profile/45666
当我路线到我的个人资料的相册.ts <。p
localhost:4200/profile/45666/albums
现在我在我的相册中。我怎样才能获得身份证45666?
我尝试使用ActivatedRoute:
console.log(this._route.snapshot.params.id) >> undefined
答案 0 :(得分:6)
您可以使用ActivatedRoute
angular/router
课程
import { ActivatedRoute, Router } from "@angular/router"
public activatedRoute: ActivatedRoute
this.activatedRoute.parent.params // return observable
如果你想要静态值,那么请求
this.activatedRoute.parent.snapshot.params // return static values
通过使用父属性,您可以访问父组件
中的所有参数和查询答案 1 :(得分:3)
由于角度5.2.x
,有另一种访问父级参数的方法。
您需要做的就是将配置选项paramsInheritanceStrategy设置为'always'
,如下所示:
RouterModule.forRoot(routes, {
paramsInheritanceStrategy: 'always'
})
通过此配置,您将可以通过原型继承访问所有祖先路线参数,因此您可以直接从激活的路线获取它:
this.activatedRoute.snapshot.params
答案 2 :(得分:1)
如果您使用的是activateRoute,则可以在ngOnInit()方法中获取id。喜欢
this.activatedRoute.params.subscribe((params: Params) => {
var id = params['id'];
});
答案 3 :(得分:1)
您需要从@ angular / router:
导入ActivatedRouteimport { ActivatedRoute } from "@angular/router";
然后在AlbumsComponent的构造函数中,您可以获取:id参数 像这样:
let id = this.activatedRoute.parent.snapshot.params["id"]
希望它有所帮助!
答案 4 :(得分:1)
这样做
import { ActivatedRoute } from "@angular/router";
let idparam = this.activatedRoute.parent.snapshot.params["idparam"]