Angular 11 - @HostListener "window:beforeunload" 触发两次
创始人
2024-10-15 09:32:39
0

问题描述: 在Angular 11中,使用@HostListener监听"window:beforeunload"事件时,会触发两次。

解决方法: 问题的原因是Angular会自动在组件中注册window:beforeunload事件的监听器,导致我们手动添加的@HostListener监听器被调用两次。为了解决这个问题,我们需要取消自动注册的监听器。

以下是解决方法的代码示例:

  1. 在组件中导入HostListener和Inject装饰器:
import { Component, HostListener, Inject } from '@angular/core';
  1. 在组件类中添加@HostListener装饰器,并取消自动注册的监听器:
@Component({
  selector: 'app-your-component',
  templateUrl: './your-component.component.html',
  styleUrls: ['./your-component.component.css']
})
export class YourComponentComponent {
  @HostListener('window:beforeunload', ['$event'])
  beforeUnloadHandler(event: Event) {
    // 在这里处理beforeunload事件
    // 注意:这个监听器只会被调用一次
  }

  constructor(@Inject(Window) private window: Window) {
    // 取消自动注册的监听器
    this.window.onbeforeunload = null;
  }
}

通过以上步骤,我们手动添加的@HostListener监听器将只会被调用一次,解决了"window:beforeunload"事件触发两次的问题。

相关内容

热门资讯

透视关于"pokem... 透视关于"pokemmo手机脚本辅助器"一贯有辅助方法(哔哩哔哩)1、玩家可以在pokemmo手机脚...
透视开挂"德扑之心免... 透视开挂"德扑之心免费透视"切实是有辅助工具(哔哩哔哩)1、点击下载安装,德扑之心免费透视脚本分类一...
透视解密"poker... 透视解密"poker辅助器免费安装"一贯是有辅助脚本(哔哩哔哩)poker辅助器免费安装是不是有人用...
透视有挂"epoke... 透视有挂"epoker透视"本来是有辅助插件(哔哩哔哩)1、epoker透视免费脚本咨询教程、epo...
透视了解"wepok... 透视了解"wepoker怎么破解游戏"本来存在有辅助技巧(哔哩哔哩)进入游戏-大厅左侧-新手福利-激...
透视教你"werpl... 透视教你"werplan怎么作必弊"一直是真的辅助攻略(哔哩哔哩)1)werplan怎么作必弊免费钻...
透视详细"wepok... 透视详细"wepoker辅助插件功能"一贯存在有辅助挂(哔哩哔哩)1、首先打开wepoker辅助插件...
透视辅助"aapok... 透视辅助"aapoker怎么开辅助器"原来存在有辅助软件(哔哩哔哩)aapoker怎么开辅助器脚本下...
透视透视"来玩app... 透视透视"来玩app 德州 辅助"好像是真的辅助技巧(哔哩哔哩)1、每一步都需要思考,不同水平的挑战...
透视专业"aapok... 透视专业"aapoker透视怎么用"真是是有辅助插件(哔哩哔哩)1、aapoker透视怎么用免费脚本...