2017-05-04 6 views
5

Ich habe zwei Komponenten. Kunden- und Versandkomponenten. Wenn der Benutzer von der Versandkomponente zur Kundenkomponente kommt. Ich möchte die Customer-Komponente direkt zur Sendungskomponente hinzufügen.Angular 2 vorherige Seite erhalten url

Ich verwende diese Methode. this._location.back(); von Standort angular/common.

Diese Methode ist immer direkt auf die Rückseite. Aber ich möchte direkt zu dem Zeitpunkt, als ich aus der Versandkomponente kam.

+1

Sie können paarweise verwenden, wie in http://stackoverflow.com/questions/33520043/how-to-detect-a-route-change-in-angular-2/38080657#38080657 gezeigt und speichern Sie die aktuelle und vorheriger Wert in einem Dienst –

Antwort

9

Sie den Code ein unten an deine Eltern-Komponente, die Ihre zwei Komponenten enthält: -

import { Router, NavigationEnd } from "@angular/router"; 

previousUrl:string; 
constructor(private router: Router) { 

    router.events 
     .filter(event => event instanceof NavigationEnd) 
     .subscribe(e => { 
      this.previousUrl = e.url; 
     }); 
} 

Es funktionierte für mich, ich hoffe, dass es auch für Sie arbeiten.

+6

Ich habe diesen Code ausprobiert. Aber es gibt die aktuelle URL zurück. –

+0

fügen Sie diesen Code zu Ihrer Elternkomponente hinzu, die Ihre 2 Komponenten enthält –

+0

Ich fügte paarweise Methode hinzu, um zu kodieren. Es gibt zwei URLs, aktuelle und vorherige, zurück. Aber ich habe diese URLs nirgendwo benutzt. –