2016-05-30 12 views
0

Für die Authentifizierung meiner Angular 2 Anwendung habe ich meinen Router bei der Anwendungsinitialisierung angemeldet. Ich überprüfe, ob ein Benutzer eingestellt ist, wenn nicht, versuche ich einen Benutzer von meinem Login-Dienst zu bekommen, wenn das auch nicht möglich ist. Ich möchte auf die Login-Seite gehen.Abonnieren von Änderungen im neuen Angular 2 Router (> = rc1)

Das Problem mit dieser Lösung ist, dass die harten Links in meiner Anwendung nicht mehr funktionieren.

Zum Beispiel: Wenn ich zu localhost: 8000/user/1 gehe, wird meine Anwendung initialisiert und meine Anwendung erhält den Benutzer von meinem loginService. Es geht jedoch nicht zu dem Link, den ich eingegeben habe, ich kann zu diesem Benutzer durch das Menü navigieren. Ich denke, dass ich eine Zeile hinzufügen muss, die dem Router mitteilt, dass er der nächsten Aktion folgen soll? Ist das mit dieser Konstruktion möglich?

Edit: Ich hoffe, das Problem ist klarer mit dieser Erklärung: Wenn ich zu einer bestimmten URL gehen, zum Beispiel http://aplication/users/5, wird das Code-Snippet oben ausgelöst. In den meisten Fällen ist der Benutzer bereits angemeldet und die Anmeldeinformationen werden vom loginService abgerufen. Wie kann ich dem Router mitteilen, dass er die Änderungsaktion, die den Code ausgelöst hat, gerade beenden soll?

+0

Es ist mir nicht klar, was das Problem ist. –

Antwort

0

Ich würde sagen, nur return; sollte tun, was Sie wollen. "Die Änderung, die diesen Code ausgelöst hat" ist an dieser Stelle sowieso schon abgeschlossen. Wenn Sie nicht explizit zu einem anderen Pfad navigieren, sollte dies genau das Ergebnis sein, nach dem Sie fragen.

Verwandte Themen