2017-01-25 5 views
0

Ich habe meine Routing wie dieseAngular2 Routing nicht auf leere Route

Ich habe das erste Level-Routing in der App-Modul

const routes: Routes = [ 
{ path: 'login', component: LoginComponent, }, 

{ path: 'dash', redirectTo:"dashboard" }, 
{ path: '**', component: NotFoundComponent } 

]; 
@NgModule({ 
    imports: [RouterModule.forRoot(routes)], 
    exports: [RouterModule], 
    providers: [] 
}) 

Und in der Komponente App einrichten <router-outlet></router-outlet>

i Dann habe ein Dashboard-Modul, wo ich eine andere Routing-Konfiguration als

const dashboardRoutes: Routes = [ 
{ 
    path: '', //null path to use dashboardtemplate which contains sidebar links 
    component: DashboardTemplateComponent, 
    children: [ 
    { 
    path: 'profile', 
    component: ProfileComponent, 

    }, 
    { 
    path: 'dashboard', 
    component: DashboardComponent, //dashboard is another component 

    }, 
    { 
    path: 'users', 
    component: UsersComponent, 
    }, 


    ] 
} 

]; 

@NgModule({ 
imports: [ 
    RouterModule.forChild(dashboardRoutes) 
], 
exports: [ 
    RouterModule 
    ] 
}) 

gesetzt habe Ich habe auch Dashboard-Vorlage Komponente als

@Component({ 
    template: ` 
     <dash-side></dash-side> //sidebar links in the dashboard 
     <router-outlet></router-outlet>` 
}) 
export class DashboardTemplateComponent implements OnInit { 

//here the logic is if a user is loggedin navigate to dashboard else to login 

    } 

Der Grund, warum ich es gesetzt auf diese Weise ist, so dass das Profil und die Benutzer-Komponenten die Sidebar Links gesetzt in der

Das Problem DashboardTemplate component verwenden können, ist, dass, wenn Profil mit in der Dashboard-Route fällt es immer zurück zu nicht gefundenen Komponente, Wie behebe ich dieses Problem

+0

Es gibt ein Problem mit Ihnen Router-Links, verwenden Sie absolute Pfade oder abstrakte wie zB 'Profil' oder '/ Profil'. Weil der Link sich ändert, wenn Sie dem Router-Link einen Schrägstrich hinzufügen, versuchen Sie, den Text zu verschieben, und sehen Sie sich den Link an, den er an –

+0

weiterleitet. Können Sie auch Ihr app.module teilen? – echonax

Antwort

1

Es gibt mehrere Probleme.

  • Redirect Route erfordert einen Schrägstrich-Präfix und pathMatch

  • Import RouterModule als RouterModule.forChild(routes) in der Haupt Routen-Datei.

  • Importieren Sie RouterModule als RouterModule.forRoot() zu imports in AppModule.

Dies sollte Ihr Problem lösen.

Verwandte Themen