2017-05-10 1 views
3

Ich habe eine delegierende Komponente, die nichts anderes tut als ein Objekt durch die ID aus einem Pfad (z. B. /tournament/:id) auflösen, den Typ des Turniers erkennen und (über router.navigate(..)) auf eine andere Route (z /tournament/:id/league)Angular2 Browser zurück Button nach Umleitung

Das Problem ist, dass der Browser zurück Schaltfläche würde zurück zu der delegierenden Komponente und zeigen Sie die leere Vorlage meiner delegierenden Komponente.

Gibt es andere Optionen an eine andere Komponente zu übermitteln als router.navigate unter Berücksichtigung der folgenden:

  1. Browser Zurück-Taste würde nicht auf die delegierenden Komponente springen
  2. Die Route /tournament/:id/league sollte in der Browser-URL widerspiegeln

Antwort

1

Ich habe eine Workaround gefunden, immer noch in der Hoffnung, dass jemand mit etwas ausgeklügelter kommt, wie dieses Snippet in jede Komponente eingefügt werden muss.

Es wird in den Konstruktor eingefügt und prüft, ob die neue Route die der delegierenden Komponente ist. Wenn ja, umleiten Sie zu einer anderen Route.

_location.subscribe(loc => { 
    let routeOfDelegatingComponent = "...."; 
    if (loc.url === routeOfDelegatingComponent) { 
    router.navigate(['/acustomroute']); 
    } 
}); 
Verwandte Themen