讓我們考慮以下路由:
path: 'requests/:id', component: PublicationsRequestDetailComponent, resolve: { request: PublicationsRequestDetailResolverService },
runGuardsAndResolvers: 'always',
children: [
{
path: 'summary', component: PublicationsRequestSummaryComponent
},
如果我在 PublicationsRequestDetailComponent 中這樣做:
ngOnInit(): void {
this._route.params.subscribe(m => {
console.log(m);
});
}
我可以讀取路由中傳遞的 id 引數 (m = {id: 'some value'})
然而,PublicationsRequestSummaryComponent 中的相同代碼給了我 m = {}
所以在子組件中,路由引數是一個空物件。
這是為什么 ?如何從我的子組件檢測路由更改?
uj5u.com熱心網友回復:
A) 您也應該在子路徑中放置一個 Id,不是嗎?
...
children: [
{
path: 'summary/:id',
component: PublicationsRequestSummaryComponent
},
...
B)此外,我想還有另一種方法可以獲取rute id引數,通過這種方式:
ngOnInit(): void {
console.log(this.activatedRoute.snapshot.paramMap.get('id'));
}
您可以同時測驗這兩種解決方案,首先是 A),然后是 B),最后是 A B。
uj5u.com熱心網友回復:
好的,解決方法是使用 route.parent
this._route.parent.params.subscribe(m => {
console.log(m);
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/376702.html
