在Angular 2中有没有聪明的方法返回到最后一页?

类似的

this._router.navigate(LASTPAGE);

例如,C页有一个“返回”按钮,

A页-> C页,点击返回A页。 B页-> C页,点击它,回到B页。

路由器有这个历史信息吗?


当前回答

在Angular 2的最终版本中。X / 4。x -这里是文档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
  }
}

其他回答

你可以在你的路由类上实现routerOnActivate()方法,它会提供之前路由的信息。

routerOnActivate(nextInstruction: ComponentInstruction, prevInstruction: ComponentInstruction) : any

然后你可以使用router.navigateByUrl()并传递ComponentInstruction生成的数据。例如:

this._router.navigateByUrl(prevInstruction.urlPath);

也为我工作时,我需要移动回文件系统。 P.S. @angular: "^5.0.0"

<button type="button" class="btn btn-primary" routerLink="../">Back</button>

另一个解决方案

window.history.back ();

如果你使用的是最新的Angular/TypeScript,请确保你显式导入

import { Location } from '@angular/common';

and

 onCancel() {
    this.location.back();
  }

在angular 4中使用preserveQueryParams,例如:

url: /list?page=1

<a [routerLink]="['edit',id]" [preserveQueryParams]="true"></a>

当点击链接时,您将被重定向编辑/10?Page =1,保留参数

裁判:https://angular.io/docs/ts/latest/guide/router.html # !# link-parameters-array