¿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 botón Volver ,
Página A -> Página C, haga clic en él, vuelva a la página A.
Página B -> Página C, haga clic en él, vuelva a la página B.
¿El enrutador tiene esta información de historial?
En realidad, puede aprovechar el servicio de ubicación incorporado, que posee una API "Atrás".
Aquí (en TypeScript):
import {Component} from '@angular/core'; import {Location} from '@angular/common'; @Component({ // component's declarations here }) class SomeComponent { constructor(private _location: Location) {} backClicked() { this._location.back(); } }
Editar : como lo mencionó @charith.arumapperuma, la Location
debe importarse desde @angular/common
, por lo que la import {Location} from '@angular/common';
la línea es importante.
En la versión final de Angular 2.x/4.x: aquí están los documentos https://angular.io/api/common/Location
/* typescript */ import { Location } from '@angular/common'; // import stuff here @Component({ // declare component here }) export class MyComponent { // inject location into component constructor constructor(private location: Location) { } cancel() { this.location.back(); // <-- go back to previous location on cancel } }
<button backButton>BACK</button>
Puede poner esto en una directiva, que se puede adjuntar a cualquier elemento en el que se pueda hacer clic:
import { Directive, HostListener } from '@angular/core'; import { Location } from '@angular/common'; @Directive({ selector: '[backButton]' }) export class BackButtonDirective { constructor(private location: Location) { } @HostListener('click') onClick() { this.location.back(); } }
Uso:
<button backButton>BACK</button>