2017-05-21 9 views
1

Ich habe Schwierigkeiten zu finden, wie ich mit Angular auf den URL-Verlauf des Browsers zugreifen kann. In AngularJS, $location hatte Sachen, und während der Angular Location-Dienst vorwärts und zurück hat, sehe ich keine Möglichkeit, den Verlauf zu sehen oder eine bestimmte Anzahl von Schritten zurückzugehen. Gibt es einen Service, den ich vermisse?Tracking-Browser-Verlauf mit Angular

Wenn nicht, könnte ich meinen eigenen History Service erstellen, aber ich kann auch kein Observable oder ähnliches finden, das aktualisiert wird, wenn eine neue URL im Browser gefunden wird. Irgendein Rat?

+1

Zurück gehen * n * Schritte ist nur 'history.back (n)'. Sie können den Verlauf nicht anzeigen, da Angular den Browserverlaufsmechanismus verwendet, der die Details des Verlaufs aus Sicherheitsgründen nicht verfügbar macht. Um URLs zu beobachten, verwenden Sie ['activatedRoute.url'] (https://angular.io/docs/ts/latest/guide/router.html#!#activated-route). Ich würde jedoch empfehlen, den Build History-Mechanismus nicht zu überschreiben/zu verbessern. Sie werden wahrscheinlich am Ende verwirren sowohl den Benutzer als auch sich selbst. –

+0

'Geschichte' wie in einem eckigen Service, oder die Standard-JS' window.history' Objekt? Und tatsächlich habe ich festgestellt, dass 'activatedRoute.url' genau das ist, was ich möchte, weil ich eigentlich nicht zurückgehen möchte, sondern vorhergehende Treffer-URLs verwenden möchte, um den nächsten Ort zu bestimmen, an den der Nutzer geschickt werden soll. Wenn Sie dies als Antwort verwenden, würde ich es akzeptieren, da es eine großartige Erklärung ist und mir meine Ergebnisse liefert :) – RhoVisions

Antwort

1

Ich habe eine hashMap verwendet, um alle meine Daten zu speichern und sie bei Personen wieder herzustellen. Und das ist das Einzige, was für mich funktioniert hat.

Wenn Sie dies tun, vergessen Sie bitte nicht, Daten beim Abmelden oder nach einer bestimmten Zeit zu löschen. Nur für Leute, die dies verwenden, sagen wir einfach: "Location from @ angular/core" verwenden Typescript-IDEs importieren sie nicht standardmäßig.

Hoffe das hilft, wenn es eine sofortige Anfrage ist. Aber ich würde wirklich gerne sehen, ob jemand eine Lösung hat.