Wie Sie wahrscheinlich bereits jetzt im neuesten @angular/router 3.0.0-rc.1
sind, dürfen Sie den Parameter redirectTo
nicht verwenden, wenn Sie auch den Parameter children
verwenden.
Aber in manchen Fällen ist dies etwas, das Sie benötigen, wie in meinem Fall .. Zum Beispiel möchte ich alle Anfragen an das übergeordnete Router umleiten.
Hier ist mein Router:
{
path: 'project/:id',
component: ProjectComponent,
children: [
{
path: 'properties',
component: ProjectPropertiesComponent
},
{
path: 'stats',
component: ProjectStatsComponent
}
]
}
Ich möchte, dass jeder, der auf die project/:id
-Route geht, in meinem Fall zum ersten Kind (properties
) umgeleitet wird.
Ist das irgendwie möglich?
Wenn ich es so versuche:
{
path: 'project/:id',
component: ProjectComponent,
redirectTo: 'properties',
children: [
{
path: 'properties',
component: ProjectPropertiesComponent,
},
{
path: 'stats',
component: ProjectStatsComponent
}
]
}
Ich bekomme diesen Fehler natürlich:
AUSNAHME: Fehler: Ungültige Konfiguration der Route 'project /: id': redirectTo und untergeordnete Elemente können nicht zusammen verwendet werden
Eine leere Kinderroute sollte die Aufgabe erfüllen:
{
path: 'project/:id',
component: ProjectComponent,
children: [
{
path: '',
redirectTo: 'properties',
pathMatch: 'full'
},
{
path: 'properties',
component: ProjectPropertiesComponent,
},
{
path: 'stats',
component: ProjectStatsComponent
}
]
}
die Antwort von j2L4e ist korrekt, aber ich musste auch den Typ "pathMatch" als "Präfix" festlegen.
pathMatch: 'Präfix'
{
path: 'project/:id',
component: ProjectComponent,
children: [
{
path: '',
redirectTo: 'properties',
pathMatch: 'prefix'
},
{
path: 'properties',
component: ProjectPropertiesComponent,
},
{
path: 'stats',
component: ProjectStatsComponent
}
]
}