2016-06-27 5 views
0

Das ist meine Strecke Config sind:"Kind" Route Pfad sollte Eltern Routenweg

export const SchoolyearsRoutes: RouterConfig = [ 
    { path:'', terminal:true, redirectTo: '/schoolyears'}, 
    { path: 'schoolyears', component: SchoolyearsListComponent }, 
    { path: 'schoolyears/edit/:id', component: SchoolyearsEditComponent }, 
    { path: 'schoolyears/create', component: SchoolyearsCreateComponent } 

aber ich will es haben, wie:

export const SchoolyearsRoutes: RouterConfig = [ 
    { path:'', terminal:true, redirectTo: '/schoolyears'}, 
    { path: 'schoolyears', component: SchoolyearsListComponent }, 
    { path: 'edit/:id', component: SchoolyearsEditComponent }, 
    { path: 'create', component: SchoolyearsCreateComponent } 

ich diese bearbeiten möchten/create route prepend die Basis URL 'schoolee' implizit während der Laufzeit.

Wie kann ich dies erreichen, ohne meine Komponenten neu zu strukturieren?

UPDATE

Obwohl ich Typoskript verwende ich eine Laufzeitausnahme erhalten, die zum Zeitpunkt der Kompilierung tatsächlich passieren sollte:

browser_adapter.ts:84EXCEPTION: Error: Uncaught (in promise): TypeError: Cannot read property 'annotations' of undefined 

Antwort

1
export const SchoolyearsRoutes: RouterConfig = [ 
    { path:'', terminal:true, redirectTo: '/schoolyears'}, 
    { path: 'schoolyears', component: SchoolyearsRootComponent, children: [ 
    { path: '', component: SchoolyearsListComponent }, 
    { path: 'edit/:id', component: SchoolyearsEditComponent }, 
    { path: 'create', component: SchoolyearsCreateComponent } 
    ] } 
] 

Ist es nicht etwas, das Ihr Fall löst?

+0

Eigentlich ja. Ich dachte etwas "./childpath" würde funktionieren, aber Kinder sind neu router3 feature ... Ich bekomme eine Laufzeitausnahme mit Ihrem Code - obwohl es ohne Probleme kompiliert - ich aktualisierte meine Frage mit der Fehlermeldung, die ich bekomme. Scheint dieses Problem: http://stackoverflow.com/questions/38065325/angular-2-child-routing-v3-cannot-read-property-annotations-of-undefined – Elisabeth

+0

Ich fügte 'SchoolyearsRootComponent' zu der Antwort hinzu. Pfad 'Schuljahre' fehlte eine' Komponente'. In Ihrem Fall würde es wahrscheinlich nur einen '' –

+0

enthalten. Ich fand auch heraus, dass ich eine andere Wrapper-Komponente brauche. Dann bekomme ich die Ausnahme: kann keinen primären Ausgang finden. Ich dachte, diese Wrapper/Home-Komponenten wären mit Router3 verschwunden. Also braucht die SchooleearsRootComponent nur eine Vorlage: '' ist das richtig? – Elisabeth