我对浏览器的历史有以下问题。
我在我的应用程序中点按了按钮,然后是我
this._router.navigate([...
这是错误的,因为我在历史记录页面中以及我导航过的页面。然后当用户点击本机后退按钮时,他在错误的页面上结束。
我将其更改为
this.location.replaceState('xxx');
this.router.navigate(['/xxx'], { skipLocationChange : true });
这只是技巧的一半,因为当我在应用程序中使用后退按钮时,我导航到页面,当我使用本机后退按钮时没有任何反应,因为我有两次。
我知道如何从历史中删除一个州?
答案 0 :(得分:15)
您应该导入Location
:
import { Location } from '@angular/common';
然后在构造函数中:
constructor(
private _location: Location
) { }
在您希望返回的代码中,您可以执行以下操作:
this._location.back();
或者,如果您想跳过一些历史记录,您可以这样做:
window.history.go(-2);
这个会做两次,就像你按了两次按钮一样。