Gibt es eine clevere Möglichkeit, die letzte Seite in Angular 2 zurückzurufen?
Etwas wie
this._router.navigate(LASTPAGE);
Zum Beispiel hat Seite C eine Go BackSchaltfläche,
Seite A -> Seite C, klicken Sie darauf, zurück zu Seite A.
Seite B -> Seite C, klicken Sie darauf, zurück zu Seite B.
Hat der Router diese Verlaufsinformationen?
angular
angular2-routing
Hongbo Miao
quelle
quelle
Location
heißt es: "Hinweis: Es ist besser, den Router-Dienst zu verwenden, um Routenänderungen auszulösen. Verwenden Sie den Standort nur, wenn Sie mit normalisierten URLs außerhalb des Routings interagieren oder diese erstellen müssen." @ Sasxas Antwort zeigt anscheinend einen Weg, diesRouter
zu tun. DieLocation
Methode ist jedoch definitiv bequemer. Weiß jemand, warum dieRouter
Methode korrekter sein könnte als dieLocation
Methode?In der endgültigen Version von Angular 2.x / 4.x finden Sie hier die Dokumente https://angular.io/api/common/Location
quelle
<button backButton>BACK</button>
Sie können dies in eine Direktive einfügen, die an jedes anklickbare Element angehängt werden kann:
Verwendungszweck:
quelle
Getestet mit Angular 5.2.9
Wenn Sie einen Anker anstelle einer Taste verwenden , müssen Sie es machen passive Verbindung mit
href="javascript:void(0)"
zu Angular Ort Arbeit zu machen.app.component.ts
app.component.html
quelle
javascript:void(0)
. So etwas wie ...@Directive({ selector: '[clickPreventDefault]' }) export class ClickPreventDefaultDirective { @HostListener("click", ["$event"]) onClick($event: Event) { $event.preventDefault(); } }
Sie können eine
routerOnActivate()
Methode für Ihre Routenklasse implementieren , die Informationen zur vorherigen Route enthält.Dann können Sie
router.navigateByUrl()
die aus generierten Daten verwenden und weitergebenComponentInstruction
. Zum Beispiel:quelle
routerOnActivate
Arbeiten Sie auch für mich, wenn ich wie im Dateisystem zurückkehren muss. PS @angular: "^ 5.0.0"
quelle
Ich habe eine Schaltfläche erstellt, die ich überall in meiner App wiederverwenden kann.
Erstellen Sie diese Komponente
Fügen Sie es dann zu einer beliebigen Vorlage hinzu, wenn Sie eine Zurück-Schaltfläche benötigen.
Hinweis: Hierbei wird Winkelmaterial verwendet. Wenn Sie diese Bibliothek nicht verwenden, entfernen Sie das
mat-button
undcolor
.quelle
Nach all diesen tollen Antworten hoffe ich, dass meine Antwort jemanden findet und ihm hilft. Ich habe einen kleinen Dienst geschrieben, um den Verlauf der Route zu verfolgen. Hier kommt's.
quelle
So wie ich es beim Navigieren zu einer anderen Seite gemacht habe, fügen Sie einen Abfrageparameter hinzu, indem Sie den aktuellen Speicherort übergeben
Lesen Sie diesen Abfrageparameter in Ihrer Komponente
Wenn returnUrl vorhanden ist, aktivieren Sie die Zurück-Schaltfläche und wenn der Benutzer auf die Zurück-Schaltfläche klickt
Dies sollte in der Lage sein, zur vorherigen Seite zu navigieren. Anstatt location.back zu verwenden, ist die oben beschriebene Methode meiner Meinung nach sicherer. Betrachten Sie den Fall, in dem der Benutzer direkt auf Ihrer Seite landet. Wenn er die Zurück-Taste mit location.back drückt, wird der Benutzer zur vorherigen Seite weitergeleitet, die nicht Ihre Webseite ist.
quelle
In RC4:
quelle
quelle
Location
stattdessen Service zu verwenden. offizielle APISeit Beta 18:
import {Location} from 'angular2/platform/common';
quelle
im Winkel 4 verwenden
preserveQueryParams
, z.Wenn Sie auf den Link klicken, werden Sie umgeleitet
edit/10?page=1
, wobei die Parameter beibehalten werdenref: https://angular.io/docs/ts/latest/guide/router.html#!#link-parameters-array
quelle
Eine andere Lösung
window.history.back();
quelle