typescript - Åtkomst till Angulars föräldraroutes data från barn
Jag skulle vilja ha samma data i barnrutter, men jag kan inte hitta ett sätt att komma åt föräldraruttens data. Det vill säga, nu har jag:
{ path: 'parent-path', component: parentComponent, children: [
{ path: 'child1', component: child1Component,
data: { sharedData: 'sharedData', child1Data: 'child1Data' }},
{ path: 'child2', component: child2Component,
data: { sharedData: 'sharedData', child2Data: 'child2Data' }},
{ path: 'child3', component: child3Component,
data: { sharedData: 'sharedData', child3Data: 'child3Data' }}
]}
Det jag vill är att slippa upprepa samma sharedData i alla barn. Jag försökte detta:
{ path: 'parent-path', data: { sharedData: 'sharedData'}, component:
parentComponent, children: [
{ path: 'child1', component: child1Component,
data: { child1Data: 'child1Data' }},
{ path: 'child2', component: child2Component,
data: { child2Data: 'child2Data' }},
{ path: 'child3', component: child3Component,
data: { child3Data: 'child3Data' }}
]}
Men på detta sätt har jag i varje komponent bara dess egna data (childXData).
Hur skulle jag kunna få åtkomst till förälderrutens data från barnen?
Svar #1
I ett barn kan du injicera ActivatedRoute (route: ActivatedRoute) och sedan kan du göra: route.parent.snapshot.data['sharedData'] eller utan snapshot om du behöver observable.