2017-08-22 2 views
0

I ng serve verwenden und solche Routing-KonfigurationAngular 4 wurden keine Routen entsprechen

export const appRoutes: Routes = [ 
    { 
    path: '', 
    children: [ 
     { 
     path: '', 
     component: AuthComponent, 
     children: [ 
      { 
      path: 'login', 
      component: LoginComponent 
      }, 
      { 
      path: 'registration', 
      component: RegistrationComponent 
      } 
     ] 
     }, 
     { 
     path: 'restore', 
     component: RestoreComponent 
     }, 
     { 
     path: 'newpass', 
     component: NewPassComponent 
     } 
    ] 
    } 
]; 

und mit zwei Tasten in auth.component.html

<nav> 
    <ul> 
    <li><a routerLink="/login" routerLinkActive="active-link">Login</a></li> 
    <li><a routerLink="/registration" routerLinkActive="active-link">Sign up</a></li> 
    </ul> 
</nav> 

wenn ich auf Login-Link, mich Winkel navigieren Seite ohne Fehler zu melden, aber wenn ich localhost:4200/login Seite neu zu laden, habe ich diesen Fehler

Console screen

aber Seite geladen erfolgreich und Komponenten werden funktionieren.

Also, wie kann ich es beheben und warum angular machen zweite NavigationStart zu/login/(Login)?

+0

Sie können versuchen, haben zu verwenden 'HashLocationStrategy' –

+0

@ n00dl3 aber wenn ich refresh/reload page, angular gibt keinen Fehler – Ruslan

Antwort

0

ok. Ich habe dieses Problem gelöst. In Auth Komponente habe ich diesen Code

let isAuthorized = await this.checkAuthorization(); 
if (isAuthorized) { 
    this.router.navigate(['dashboard'], {relativeTo: this.route}); 
} else { 
    this.router.navigate(['login'], {relativeTo: this.route}); 
} 

so mache ich aus/login umleiten zu/login/login aber Route Config muß nicht dieser Weg

0

Sie müssen keine Kinder von Pfad "" verwenden. Versuchen Sie Folgendes zu verwenden:

export const appRoutes: Routes = [ 
    { 
    path: 'pathToAuth', // change to your path 
    component: AuthComponent, 
    children: [ 
     { 
     path: 'login', 
     component: LoginComponent 
     }, 
     { 
     path: 'registration', 
     component: RegistrationComponent 
     } 
    ] 
    }, 
    { 
    path: 'restore', 
    component: RestoreComponent 
    }, 
    { 
    path: 'newpass', 
    component: NewPassComponent 
    } 
]; 
+0

ändere 'pathToAuth' auf '', aber Fehler immer noch – Ruslan

+0

wenn pathToAuth === "" versuche, ohne Kinder Elemente zu verwenden: const appRoutes exportieren: Routes = [ { { Pfad: '' , Komponente: AuthComponent, { Pfad: 'Login', Komponente: LoginComponent }, { Pfad: 'Registrierung', Komponente: RegistrationComponent }, { Pfad: 'wiederherstellen', Komponente: RestoreComponent }, { Pfad: 'newpass', Komponente : NewPassComponent } ]; Sorry für das Format –

+0

aber LoginComponent und RegistrationComponent ist ein Formular, und AuthComponent ist ein allgemeines Layout, das eines der Formulare enthält. Wenn ich die Seite öffne/logge, muss LoginComponent innerhalb von AuthComponent starten. – Ruslan

Verwandte Themen