使用@HostListener监听浏览器的事件。
beforeunload事件在关闭浏览器时调用,Chrome浏览器会判断页面是否做了修改,若没有修改直接关闭页面不会提示。
isDataSaved标识页面数据是否已保存,只有当未保存isDataSaved为false时离开才会提示。
isDataSaved = false;
@HostListener('window:beforeunload', ['$event']) beforeUnloadHander(event) {
return this.isDataSaved ;
}
saveDataToDatabase(): void {
...
this.isDataSaved = true;
}