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.

Relaterade artiklar