如何处理 Angular 5 上的浏览​​器刷新操作?

Yuk*_*kun 7 angular-ui-router angular

目前,我正在尝试检测浏览器刷新事件(使用 F5),然后重新初始化页面状态一次。我只是检查了路由器事件,即如果第一个事件类型是 NavigationStart 并且事件 id 是 1,我认为用户按下了浏览器刷新 F5 按钮。

示例代码如下所示。然而,看起来很奇怪。有没有更好的方法来归档相同的目标?或任何建议?谢谢

export class AppComponent implements OnInit{

   constructor(private  router: Router) {
     this.router.events.pairwise().subscribe((events: any[]) => {
       if (events[0] instanceof NavigationStart
             && events[0].id === 1 && events[1].id === 1) {

             // re-initialize page sate . . .
    }
  });
Run Code Online (Sandbox Code Playgroud)

}

小智 1

我尝试下面的代码来检查浏览器重新加载。

构造函数(私有路由器:路由器){

   this.subscription = router.events.subscribe((event) => {
    if (event instanceof NavigationStart) {
      browserRefresh = !router.navigated;
    }
});
Run Code Online (Sandbox Code Playgroud)

}

参考来源:https ://stackblitz.com/edit/angular-r6-detect-browser-refresh