webentwicklung-frage-antwort-db.com.de

Verwenden Sie redirectTo, wenn Sie auch die untergeordneten Parameter verwenden. Ist dies möglich?

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

17
Vassilis Pits

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
      }
    ]
  }
45
j2L4e

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
      }
    ]
  }
0
user2735883