在Angular 2中有没有聪明的方法返回到最后一页?
类似的
this._router.navigate(LASTPAGE);
例如,C页有一个“返回”按钮,
A页-> C页,点击返回A页。 B页-> C页,点击它,回到B页。
路由器有这个历史信息吗?
在Angular 2中有没有聪明的方法返回到最后一页?
类似的
this._router.navigate(LASTPAGE);
例如,C页有一个“返回”按钮,
A页-> C页,点击返回A页。 B页-> C页,点击它,回到B页。
路由器有这个历史信息吗?
当前回答
是的,你能做到。在你的typescript组件上编写这段代码,然后享受吧!
import { Location } from '@angular/common'
import { Component, Input } from '@angular/core'
@Component({
selector: 'return_page',
template: `<button mat-button (click)="onReturn()">Back</button>`,
})
export class ReturnPageComponent {
constructor(private location: Location) { }
onReturn() {
this.location.back();
}
}
其他回答
要返回而不刷新页面,我们可以像下面这样在html中做 javascript: history.back ()
<a class="btn btn-danger" href="javascript:history.back()">Go Back</a>
在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
我做了一个按钮,我可以在我的应用程序的任何地方重复使用。
创建这个组件
import { Location } from '@angular/common';
import { Component, Input } from '@angular/core';
@Component({
selector: 'back-button',
template: `<button mat-button (click)="goBack()" [color]="color">Back</button>`,
})
export class BackButtonComponent {
@Input()color: string;
constructor(private location: Location) { }
goBack() {
this.location.back();
}
}
然后在需要后退按钮时将其添加到任何模板中。
<back-button color="primary"></back-button>
注意:这里使用的是Angular材质,如果你不使用这个库,那么移除垫子按钮和颜色。
是的,你能做到。在你的typescript组件上编写这段代码,然后享受吧!
import { Location } from '@angular/common'
import { Component, Input } from '@angular/core'
@Component({
selector: 'return_page',
template: `<button mat-button (click)="onReturn()">Back</button>`,
})
export class ReturnPageComponent {
constructor(private location: Location) { }
onReturn() {
this.location.back();
}
}
你可以在你的路由类上实现routerOnActivate()方法,它会提供之前路由的信息。
routerOnActivate(nextInstruction: ComponentInstruction, prevInstruction: ComponentInstruction) : any
然后你可以使用router.navigateByUrl()并传递ComponentInstruction生成的数据。例如:
this._router.navigateByUrl(prevInstruction.urlPath);