目前,我正在尝试检测浏览器刷新事件(使用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 . . .
}
});
}
答案 0 :(得分:0)
我尝试了以下代码来检查浏览器重新加载。
构造函数(专用路由器:路由器){
this.subscription = router.events.subscribe((event) => {
if (event instanceof NavigationStart) {
browserRefresh = !router.navigated;
}
});
}
引用来自:https://stackblitz.com/edit/angular-r6-detect-browser-refresh