2017-11-08 4 views
0

ich einen loginPageGuard gebaut haben, die einfach nicht vom Benutzer lo Login-Seite zu lassen, wenn er bereits angemeldet ist.Navigieren zu einer bestimmten Seite, wenn der Benutzer eine URL aus einem neuen Tab betritt

Lassen Sie uns sagen Benutzer auf

ist
http://localhost:4200/#/testUrl 

und versucht zu http://localhost:4200/#/login

LoginPageGuard zu gehen funktioniert, wie ich es an und Anwender wollen bleibt

http://localhost:4200/#/testUrl 

Das Problem ist, wenn Benutzer angemeldet ist und öffnet einen neuen Tab und geben Sie in Browser folgende URL

http://localhost:4200/#/login 

App dem Benutzer doesn `t lassen zur Login-Seite aber geht an

http://localhost:4200/#/ 

Was ich will, ist zu Benutzer zu

http://localhost:4200/#/someDesiredUrl 

nehmen Gibt es eine Möglichkeit, dies zu erreichen? Dank

LoginPageGuard

@Injectable() 
export class LoginPageGuard implements CanActivate { 


    constructor(private router: Router, private authenticationService: AuthenticationService) { 
    } 

    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> { 

    return this.authenticationService.isAuthorized() 
     .map((user:EUser)=>{ 
     return !user.isAuthorized; 
    }) 
    } 
} 

app.routing.ts

{ 
    path: 'login', 
    canActivate:[LoginPageGuard], 
    component: LoginComponent 
    } 

Antwort

0

einfach die injizierten verwenden Router-Instanz zu someDesiredUrl navigieren?

+0

Ich möchte nur Benutzer zu einer gewünschten URL gehen, wenn Benutzer eine neue Registerkarte öffnet und versucht, zur Anmeldeseite zu gehen. Ansonsten funktioniert das System einwandfrei. – rematnarab

Verwandte Themen