dedlfix: Angular 8: Nach Login wird mir die neue Componente auf dem Login Bildschirm angezeigt

Beitrag lesen

Tach!

ich habe in Angular 8

Mach aus der Problemstellung bitte ein Stackblitz-Projekt, damit man das nachvollziehen kann.

So hab ich nur allgemeine Anmerkungen.

Code ins ngOnInit() musst du nur dann schreiben, wenn du Inhalte von @Input() verarbeiten musst. Anderer Initialisierungscode kann bereits im Constructor laufen. Für Initialisierungen allgemeiner Art ist der ja zuständig. ngOnInit() ist nur ein spezieller Hook im Lifecycle. Vor allem betrifft das in der HomeComponent die Initialisierung des Formulars und das Zuweisen der returnUrl. Letzteres kann auch gleich bei der Deklaration erfolgen, so wie du das für model gemacht hast.

Im AuthGuard:

  public isLoggedIn(): boolean {
    let status = false;
    if (localStorage.getItem('isLoggedIn') === 'true') {
      status = true;
    } else {
      status = false;
    }
    return status;
  }

Das ist sehr umständlich, hier reicht ein Einzeiler

return localStorage.getItem('isLoggedIn') == 'true';

Noch besser ist, für den Local-/SessionStorage einen Service zu verwenden, der die Daten nach JSON serialisiert und beim Abfragen wieder Rohformat zurückgibt. Das gibts in vielerlei Ausführung auch fertig, zum Beispiel ngx-webstorage-service.

Problem: Nach erfolgreichem Login lande ich zwar unter der URl /dashboard, aber leiderist die HomeKomponente mit dem Login dort noch sichtbar. Wie ändere ich das?

Kann ich nicht nachvollziehen, dafür fehlt zu viel Code.

dedlfix.