2016-10-17 2 views
0

Ich habe 2 Modelle: AppModule, PanelModule.Angular 2: Umleiten auf die richtige Route

In meiner AppComponent überprüfe ich, ob der Benutzer angemeldet ist, und wenn er es ist, leite ich ihn zum Panel um. So mache ich das:

ngOnInit() { 
     //If he is alredy logged, redirect him to the panel 
     this.authService.login().subscribe(() => { 
      this.authService.loaded = true; 
     if (this.authService.isLoggedIn) { 
      console.log("Navigating to panel.."); 
     this.router.navigate(['/panel']); 
     } 
    }); 
    } 

Das Problem beginnt, wenn mein Standort eine untergeordnete Route ist. zum Beispiel:

/panel/users 

Wenn ich die URL bin versucht direkt zugreifen zu können, steuere ich die /panel zurück, da der Benutzer in und this.router.navigate(['/panel']); protokolliert wird ausgeführt.

Was ist der richtige Ansatz, so dass meine App den Benutzer auf den richtigen Weg umleiten wird?

Antwort

0

Sie wahrscheinlich nur auf das erste Ergebnis abonnieren möchten:

this.authService.login().first().subscribe(() => {