Angular2: Wie kann man die Manipulation des Verlaufs während der Implementierung von routerCanDeactivate verhindern / aufheben?

routerCanDeactivate() verhindert erfolgreich die Navigation von der Komponente weg.

routerCanDeactivate(nextInstruction: ComponentInstruction, prevInstruction: ComponentInstruction) 
  {
    return confirm("Do you want to discard unsaved changes ?");
  }

Aber wenn die Navigation durch das @ des Browsers verursacht wiback Taste oder ein andereshistory.back() trigger,

then es hält die Geschichte nicht intakt und löstpopState bei jedem Auslöser und navigiert schließlich zur Startseite des Browsers (auf Chrome getestet).

BEARBEITEN

Ich habe die URL der aktuellen Komponente in einer Variablen gespeichertcurrentLocation un

versucht zu manipulierenhistory mithistory api abe

Just konnte nicht herausfinden, in welcher Reihenfolge die API-Aufrufe ausgeführt werden müssen, damit sie intakt bleiben.

routerCanDeactivate(nextInstruction: ComponentInstruction, prevInstruction: ComponentInstruction) {
    history.replaceState(null,null, this.currentLocation);
    history.forward();
    return confirm("Do you want to discard unsaved changes ?");
  }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage