Ich habe eine Anmeldeseite und eine Dashboard-Komponente. Mein Problem ist, wenn ich mich von der Seite anmelde, die das Dashboard unter der Anmeldeseite anzeigt, wird es nicht als neue Seite umgeleitet. Wie wird dies in Winkel 7 erreicht? Jede Hilfe wäre hilfreich '. Vielen Dank!!

app.component.ts

import { Component } from '@angular/core';
import { Router } from '@angular/router';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})

export class AppComponent {
  title = 'Shopping-cart';
  user = []
  users = []
  public Candidate = []
  public showWhen:boolean = false;

  constructor(private _router: Router){}

  authenticateLogin(user){
    let authUser = JSON.parse(localStorage.getItem('auth'))
    console.log(user);
    if(user.mail === authUser[0] && user.password === authUser[1]){
      this.showWhen = true;
      console.log("Logged in Successfully");
      this._router.navigate(['dashboard']);
    } else {
      console.error("Invalid email and password");
    }
  }

}

Dies ist mein Routing-Modul

app-routing.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { DashboardComponent } from './dashboard/dashboard.component';

const routes: Routes = [
  { path: 'dashboard', component: DashboardComponent} 
];

@NgModule({
  imports: [RouterModule.forRoot(routes, { enableTracing: true })],
  exports: [RouterModule]
})
export class AppRoutingModule { }
7
Ben 18 Jän. 2019 im 13:44

3 Antworten

Beste Antwort

In Routes haben Sie nur eine Route - zum Dashboard - machen Sie die zweite Route zum Login

6
Kamil Kiełczewski 18 Jän. 2019 im 11:39

Sie sollten eine andere Route zur Anmeldeseite haben. Ohne das können Sie die Anmeldeseite nicht anrufen.

Probieren Sie in Ihrem Codeteil diese Codestücke aus

app.component.ts

authenticateLogin(user){
    let authUser = JSON.parse(localStorage.getItem('auth'))
    console.log(user);
    if(user.mail === authUser[0] && user.password === authUser[1]){
      this.showWhen = true;
      console.log("Logged in Successfully");
      this._router.navigate(['dashboard']);
    } else {
      this._router.navigate(['login']);
    }
  }

Und Sie sollten einen anderen Router-Pfad in haben

app-routing.module.ts

const routes: Routes = [
  { path: 'dashboard', component: DashboardComponent} ,
  { path: 'login', component: LoginComponent(write your login component name)} 
];
1
user8009263 27 Jän. 2020 im 10:29

Erstellen Sie für ein Anmeldeformular möglicherweise eine eigene Komponente und fügen Sie sie der Route hinzu.

0
Sergey Ivchenko 18 Jän. 2019 im 18:02