¿Hay alguna forma inteligente de volver a la última página en Angular 2?
Algo como
this._router.navigate(LASTPAGE);
Por ejemplo, la página C tiene un Go Backbotón,
Página A -> Página C, haga clic en ella, regrese a la página A.
Página B -> Página C, haga clic en ella, vuelva a la página B.
¿El enrutador tiene esta información de historial?
angular
angular2-routing
Hongbo Miao
fuente
fuente
Location
estados: "Nota: es mejor usar el servicio de enrutador para activar los cambios de ruta. Use la ubicación solo si necesita interactuar o crear URL normalizadas fuera del enrutamiento". La respuesta de @ Sasxa aparentemente muestra una forma de usarRouter
para hacer esto. Sin embargo, elLocation
método definitivamente es más conveniente. ¿Alguien sabe por qué elRouter
método podría ser más correcto que elLocation
método?En la versión final de Angular 2.x / 4.x: aquí están los documentos https://angular.io/api/common/Location
fuente
<button backButton>BACK</button>
Puede poner esto en una directiva, que se puede adjuntar a cualquier elemento en el que se pueda hacer clic:
Uso:
fuente
Probado con Angular 5.2.9
Si utiliza un ancla en lugar de un botón, usted debe hacer un enlace pasiva con
href="javascript:void(0)"
hacer el trabajo Localización angular.app.component.ts
app.component.html
fuente
javascript:void(0)
. Algo así como ...@Directive({ selector: '[clickPreventDefault]' }) export class ClickPreventDefaultDirective { @HostListener("click", ["$event"]) onClick($event: Event) { $event.preventDefault(); } }
Puede implementar el
routerOnActivate()
método en su clase de ruta, proporcionará información sobre la ruta anterior.Luego puede usar
router.navigateByUrl()
y pasar datos generados desdeComponentInstruction
. Por ejemplo:fuente
routerOnActivate
También funciona para mí cuando necesito retroceder como en el sistema de archivos. PS @angular: "^ 5.0.0"
fuente
Hice un botón que puedo reutilizar en cualquier lugar de mi aplicación.
Crea este componente
Luego agréguelo a cualquier plantilla cuando necesite un botón de retroceso.
Nota: Esto está usando material angular, si no está usando esa biblioteca, elimine el
mat-button
ycolor
.fuente
Después de todas estas increíbles respuestas, espero que mi respuesta encuentre a alguien y lo ayude. Escribí un pequeño servicio para hacer un seguimiento del historial de rutas. Aquí va.
fuente
La forma en que lo hice mientras navegaba a una página diferente agrega un parámetro de consulta pasando la ubicación actual
Lea este parámetro de consulta en su componente
Si returnUrl está presente, active el botón Atrás y cuando el usuario haga clic en el botón Atrás
Esto debería poder navegar a la página anterior. En lugar de usar location.back, creo que el método anterior es más seguro, considere el caso en el que el usuario accede directamente a su página y si presiona el botón Atrás con location.back, lo redirigirá al usuario a la página anterior, que no será su página web.
fuente
En RC4:
fuente
fuente
Location
servicio en su lugar. API oficialDesde beta 18:
import {Location} from 'angular2/platform/common';
fuente
en uso angular 4
preserveQueryParams
, ej:Al hacer clic en el enlace, se le redirige
edit/10?page=1
, conservando los parámetrosref: https://angular.io/docs/ts/latest/guide/router.html#!#link-parameters-array
fuente
Otra solución
window.history.back();
fuente