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

时间:2018-01-22 23:15:15

标签: angular angular-ui-router

目前,我正在尝试检测浏览器刷新事件(使用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 . . .
    }
  });

}

1 个答案:

答案 0 :(得分:0)

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

构造函数(专用路由器:路由器){

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

}

引用来自:https://stackblitz.com/edit/angular-r6-detect-browser-refresh