2016-11-10 1 views
2

Ich habe die folgenden URLs:angular2 Unternavigationsleiste, Routing und Pfadparameter

Business/details/Kontakte /: id

Business/details/Konto /: id

Geschäft/details/Adressen /: id

und in meinem Routing ich habe folgendes:

const routes: Routes = [ 
 
    { 
 
     path: 'details', 
 
     component: BusinessDetailsComponent, 
 
     children: [ 
 
      { 
 
       path: 'contacts/:id', 
 
       component: BusinessContactDetailsComponent 
 
      }, 
 
      { 
 
       path: 'account/:id', 
 
       component: BusinessAccountDetailsComponent 
 
      }, 
 
      { 
 
       path: 'address/:id', 
 
       component: BusinessAddressDetailsComponent 
 
      } 
 
     ] 
 
    } 
 
];

Die Idee ist, dass die BusinessDetailsComponent eine Navigationsleiste hat, um zwischen den drei Seiten zu navigieren.

Mein Problem ist, dass die Navigationsleiste im Eltern die ID von den untergeordneten Routen benötigt. Ich habe versucht, dies von der BusinessDetailsComponent mit dem folgenden Code zu bekommen, aber das funktioniert nicht. Es funktioniert bei den Kindern, aber nicht bei den Eltern. Hat jemand irgendwelche Ideen?

ngOnInit(): void { 
 
     this.route.params.subscribe(params => { 
 
      console.log(params); 
 
     }); 
 
    }

Antwort

0

Als Abhilfe können musste ich den folgenden Hack tun:

ngOnInit(): void { 
    // This is a hack that I don't like - need to find a better way! 
    if (this.route.children != null) { 
     this.route.children[0].params.forEach((params: Params) => { 
      this.id = params['id']; 
     }); 
    } 
}