如何使用Angular Router / Location通过清除路由历史记录返回特定页面

时间:2019-01-07 05:19:25

标签: angular angular-routing angular-router

通过清除路由历史记录返回首页是我的要求

我尝试使用以下代码。但是下面显示的所有代码都不符合我的要求。

this.router.navigate(['/services/paymentProcessing'], { skipLocationChange: true });

ngOnDestroy(): void {
    window.history.go(-4);
    this.location.back();
    this.router.navigate(['/services/#SH']);
  }

我需要通过清除路由历史记录从特定页面返回首页/特定页面。谁能让我知道解决方法

1 个答案:

答案 0 :(得分:0)

通过参考this SO answerHow to Detect Browser Back Button event - Cross Browser的答案,我希望让您知道上述任务的解决方案。

要返回特定页面,只需跳过当前页面即可使用代码

this.router.navigate(["/C"], { replaceUrl: true });

如斯塔克·巴托夫斯基先生所说

然后,如果您希望停留在当前页面(在我的情况下为HomePage)而不清除历史记录,

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

constructor(public location: Location){}

ngOnDestroy(): void {
    this.location.subscribe(
      x=> history.pushState(null, null, window.location.pathname)
    );
  } 

以便您可以阻止后退按钮导航。

如果有的话,还有更好的代码行,请期待。

寻找答案,比上面的要好