Events 如何在Angular 2+;

Events 如何在Angular 2+;,events,angular5,onbeforeunload,Events,Angular5,Onbeforeunload,我正在使用HostListener获取窗口关闭事件并尝试阻止该事件 我首先导入了HostListener并使用了这段代码。但是,我无法阻止窗口关闭事件 import { HostListener } from '@angular/core'; @HostListener('window:beforeunload', ['$event']) onWindowClose(event: any): void { this.doSomething(); } 您可

我正在使用HostListener获取窗口关闭事件并尝试阻止该事件

我首先导入了HostListener并使用了这段代码。但是,我无法阻止窗口关闭事件

  import { HostListener } from '@angular/core';

  @HostListener('window:beforeunload', ['$event'])
   onWindowClose(event: any): void {

       this.doSomething();

   }

您可以使用HostListener防止单独组件的窗口关闭事件

首先在组件中导入HostListener

import { HostListener } from '@angular/core';
并且,使用此代码可防止车窗关闭

  @HostListener('window:beforeunload', ['$event'])
   onWindowClose(event: any): void {
    // Do something

     event.preventDefault();
     event.returnValue = false;

  }

现在,您的事件已被阻止。

我使用了相同的,但它对我不起作用,并且没有错误showing@pal::在卸载事件之前将其包括在哪个组件中。在浏览器中打开该特定组件。然后关闭浏览器选项卡。它将向您显示警报弹出窗口。!再试一次。如果你有任何疑问,请告诉我。或者你能在电子邮件上显示你的代码吗?这里你说的是两个组件?@pal::是的。在我的项目中,我将此事件用于表单提交。如果用户输入表单组件,然后用户填写详细信息,然后用户尝试关闭该选项卡,我将首先检查表单。如果他/她输入了任何值。然后我阻止选项卡关闭。否则选项卡将关闭。我只对一个组件使用了这个。若要防止整个应用程序的选项卡关闭,可以在index.html文件上编写一些脚本(不带主机侦听器),也可以通过每个组件添加主机侦听器来实现。