2016-09-11 6 views
0

Ich habe schon eine Weile an RC6 herumgebastelt, in der Hoffnung, dass das Routing zu verschachtelten untergeordneten Komponenten ohne weiteres funktionieren würde. Nun, kein Glück. Der Effekt, den ich gerade sehe, ist, dass die redirectTo für die Standardroute einfach ignoriert wird und stattdessen Angular direkt zur ersten untergeordneten Komponente geht.Angular 2 Router überspringt redirectTo und verwendet stattdessen die untergeordnete Route

import { Route, RouterModule } from '@angular/router'; 
import { LandingPageComponent } from 'src/landing-page.component'; 
import { DepartmentModule } from 'src/department/department.module'; 

const routes: Route[] = [ 
    { path: '', redirectTo: 'landing-page', pathMatch: 'full' }, 
    { path: 'landing-page', component: LandingPageComponent }, 
    { path: 'department', loadChildren:() => DepartmentModule } 
]; 

export const appRoutingProviders: any[] = []; 
export const routing = RouterModule.forRoot(routes, {enableTracing:true}); 

sollten Sie denken, keine URL eingeben würde mich landing-page nehmen, aber nein, Angular Picks department aus Gründen, die über mir sind.

Von diesem Punkt alles wie erwartet funktioniert, kann ich auf ein Kind Route navigieren dann

import { Route, RouterModule } from '@angular/router'; 
import { DepartmentComponent } from './department.component'; 
import { DepartmentDetailsComponent } from './department-details.component'; 

const departmentRoutes: Route[] = [ 
    { path: '', component: DepartmentComponent }, 
    { path: ':id', component: DepartmentDetailsComponent } 
]; 

export const departmentRouting = RouterModule.forChild(departmentRoutes); 

Die seltsame Sache hier ist jedoch, dass ich

brauchen
<a [routerLink]="['../..']"> 

1 Ebene zu navigieren zurück nach oben . Möglicherweise sind beide Probleme miteinander verbunden.

Hat jemand eine Idee, was ich vermisse? Die plnkr finden Sie hier.

+0

Was ist Ihr erwartetes Verhalten ? – micronyks

+0

Lädt es zuerst 'landing-page' mit einer Schaltfläche (mit Umleitung zu Abteilung 45)? – micronyks

+0

Um auf die "Landing-Page" zu gelangen, wenn ich keinen Pfad angegeben habe, natürlich. –

Antwort

4

Sie müssen nur DepartmentModule von Einfuhren entfernen (von AppMoule der @NgModule()), wie unten gezeigt,

imports: [ BrowserModule, MdButtonModule, 
      RouterModule, routing]   //<---removed DepartmentModule declaration 

arbeiten: http://plnkr.co/edit/qoZ3YCwSz0mQ5o974Dt0?p=preview

+1

Und es behebt das '[routerLink]' auch, fantastisch! –

+0

Stellen Sie sicher, dass das Lazy-Loading-Modul nicht importiert wird. Sie sind für das faule Laden bestimmt. Angular2 wird sich alleine darum kümmern. – micronyks

Verwandte Themen