2016-08-03 5 views
0

Mit früheren angular2 Router, konnte ich Komponentenname von URL bekommen.Get Component von URL in angular2 neueste Router

  console.log(this.router.instruction); 
      console.log(this.router.currentInstruction.component); 
      console.log(this.router.currentInstruction.component.routeName); 

Aber mit neuen Router kann ich nicht. Gibt es Alternativen?

Ich mag jedes Routing in meiner App verfolgen, werde es dann melden Sie sich mit seinen Komponentennamen (nicht url Wert)

constructor(private router: Router, 
      private cookieService: CookieService, 
      private adminService: AdminService, 
      private appService: AppService) { 
    router.events.subscribe((e: Event) => { 
     if (e instanceof NavigationEnd) { 

      // 
      // WANT TO GET COMPONENT NAME by this.router.url 
      // 

      let newRoute = this.router.url || '/'; 
      if (this.currentRoute != newRoute) { 
       console.log('route to ', newRoute); 
       this.currentRoute = newRoute; 
      } 
     } 
    }); 
} 

eine Chance?

Antwort

0

können Sie aktive Route zugreifen, wie unten Code

constructor(private router:Router, private currentActivatedRoute:ActivatedRoute) 
ngOnInit() 
{ 
var comp = this.currentActivatedRoute.component 
} 

Snippet Wenn Sie Kind aktiviert Route in componet Eltern zugreifen müssen see

ActivatedRoute

+0

Hey @Arpit Agarwal. Es gibt immer dieselbe Komponente zurück. Ich habe den Ereignisbeobachter in einer einzigen Komponente abonniert, um das gesamte Routing über die Site zu verfolgen. –

+0

Siehe den verknüpften Post. Sie können ActivatedRoute von Kindern abrufen und diesen Baum verwenden, um den Blattknoten zu finden. Die Komponente, die Sie abonnieren, muss root sein, damit sie funktioniert. –

+0

Alternativ können Sie einen canActivateGuard schreiben, der den gleichen/ähnlichen Parameter wie in meinem Post beschrieben hat und von dort aus protokolliert. Sie müssen diesen Haken in der Routenkonfiguration aller Elemente übergeben. Btw loggt sich nicht ein ngOnInit einzelner Komponenten genügt Ihrem Anwendungsfall. –