2017-02-21 7 views
0

Ich habe die folgende PlatzhalterAngular Wildcard RedirectTo nicht funktioniert

const routes: Routes = [ 
    { 
     path: '', 
     children: [ 
      { 
       path: 'list/:id', 
       component: ListComponent 
      }, 
      { 
       path: 'view/:id', 
       component: ViewComponent 
      }, 
      { 
       path: 'edit/:id', 
       component: EditComponent 
      }, 
      { 
       path: '**', 
       redirectTo: 'list/:id', 
       pathMatch: 'full' 
      } 

     ] 
    } 
]; 

der: id ein Platzhalter für die ID ist, dass ich von Backend bekommen müssen. Der Platzhalter funktioniert nicht (die List-Komponente wird nicht umgeleitet), was zu folgendem Fehler führt:

. Irgendwelche Ideen Jungs? Danke im Voraus.

+0

Es gibt Ihnen Fehler, weil für Ihre Wild Card Route seinen Wert von ': ID' nicht finden. Was Sie tun können, ist für Ihre Wildcard-Route müssen Sie 'Komponente' definieren und innerhalb dieser' Komponente' können Sie ': ID' aus Ihrem Backend und umleiten Benutzer zu' list /: id' von dieser Komponente basierend auf Ihrer ID vom Backend – ranakrunal9

+0

yeah .. aber wie können wir dieses Problem beheben? Oder wie kann ich die ID in den Router übergeben – blackdaemon

Antwort

2

Wie sollte der Router wissen, zu welcher Liste Sie navigieren möchten, wenn der Benutzer EINE ungültige Route eingibt?

Sollte das :id 0, 33 oder sogar 1337 sein? Der Router kann es nicht wissen!

einzig mögliche Weg wäre ein Rückfall-Router ohne einen Parameter zu definieren, oder eine definieren:

{ 
    path: '**', 
    redirectTo: 'list/77', // put your fallback-id here !! 
    pathMatch: 'full' 
} 

besser wäre eine Website wie 404 error zu erstellen sein. Zeigen Sie eine Nachricht wie page not found und einige Navigationsoptionen an den Benutzer .. vielleicht eine Übersicht über alle Liste oder was auch immer ..

+0

Thought of 404page. Aber es ist nicht anwendbar. Ich muss sterben umleiten auf die Liste Seite. Entschuldigung, was Fallback-ID bedeutet? – blackdaemon

+0

eine DEFINIERTE "Liste", die angezeigt werden soll, wenn der Benutzer zu einer nicht definierten Route navigiert .. IDK deine App, vielleicht kannst du dann 'list/0' anzeigen .. vielleicht gibt es keine Liste, die dann angezeigt wird .. es ist oben für dich! :) – mxii