Ich habe eine App mit einer Login-Komponente und einer Home-Komponente und wenn der Benutzer sich angemeldet hat, möchte ich zur Home-Komponente navigieren. Ich möchte, dass die Login-Komponente nach der Authentifizierung ein "Login erfolgreich" -Ereignis ausgibt und die App-Komponente diese abhört und entsprechend navigiert. Ich kann jedoch nicht sehen, wie der Ereignis-Listener in der Rooting-Konfiguration hinzugefügt wird.Wie hören Sie Ereignisse als Teil der Routerkonfiguration?
Die meisten der Beispiele, die ich gesehen habe, betreffen das Navigieren innerhalb der Login-Komponente, aber dies scheint die Idee von eigenständigen Komponenten zu zerstören, da die Login-Komponente sowohl die Home-Komponente als auch das Rooten kennen muss Struktur der App
Ich möchte die Ausgabe der Login-Komponente verwenden, aber ich kann nicht sehen, wie dies beim Navigieren zum Login mit Router-Konfiguration zu tun.
<login (loginSuccess)="handleLoginSuccess($event)"></login>
Es gab auch eine längere Diskussion über Github (https://github.com/angular/router/issues/185), die Wurzeln, die Geschwister schlägt die Navigation wird nicht empfohlen.
Dies wird den gewünschten Effekt erzielen, aber mit der Login-Komponente, die für das Navigieren verantwortlich ist, bricht sicher die Idee, wiederverwendbare Komponenten zu haben. Ich wäre nicht in der Lage, diesen Ansatz zu verwenden, um eine Login-Komponente zu erstellen, die ich über verschiedene Apps teilen könnte. –
Die Login-Komponente ist nicht für die Navigation verantwortlich, sie verbindet nur den Routenpfad. Router sollte für das Navigieren verantwortlich sein und der guard.service wird prüfen, ob der Benutzer die richtige Authentifizierung hat. –