2017-08-11 4 views
0

Das ist mein aktuelle Setup:Nested Routingverbindungen Angular 4

- app (Folder) 
    - app-routing.module.ts (File) 
    - client (Folder) 
     - client-routing.module.ts (File) 
      - service (Folder) 
       - service-routing.module.ts (File) 
       - service1.componenent.ts (File) 
       - service2.componenent.ts (File) 

So, jetzt, wenn ich router.navigateByUrl innerhalb service1.componenet verwende ich werde es so zu tun haben :

this.router.navigateByUrl('/client/service2'); 

ich werde Verschachtelung Routing-Module halten müssen, um so die "Eltern" des rou zu wissen te später ein Problem sein könnte, wollte ich wissen, ob es eine effiziente Lösung ist eher als das Kopieren der gesamten Strecke, so etwas wie:

this.router.navigateByUrl(parentRoute + '/service2'); 

Wo die parentRoute es sich um eine Zusammenstellung der verschachtelten Routen ist.

Antwort

1

Sie könnten versuchen, die ActivatedRoute in der service1component verwenden. Etwas wie dieses:

import { Router, ActivatedRoute } from '@angular/router'; 

@Component({ 
... 
}) 
export class Service1Component { 
constructor(
    private _router:Router, 
    private _route: ActivatedRoute 
){} 

... 

    navigate(){ 
    this._router.navigate(['./service2'],{ 
     relativeTo: this._route 
    }); 
    } 
}