Comment puis-je utiliser @HostListener ("window:beforeunload') pour appeler une méthode?
Je suis en train d'appeler une méthode post j'ai fait moi-même avant mon composant est déchargé, mais il ne fonctionne pas.
J'ai mis un point d'arrêt sur @HostListener et il ne rompt pas là quand j'ai ouvert un autre composant.
Je suis en utilisant google Chrome pour debug et j'ai allumé Écouteur d'Événement de points d'arrêt pour les décharger et les beforeunload, qui ne pause quand j'ouvre un autre composant.
Suis-je raté quelque chose dans mon code?
import { Component, OnInit, HostListener } from '@angular/core';
Component({
templateUrl: 'new-component.html'
})
export class NewComponent implements OnInit {
@HostListener('window:beforeunload') onBeforeUnload() {
PostCall();
}
}
Vous devez vous connecter pour publier un commentaire.
window:beforeunload
est un navigateur événement qui est déclenché à droite avant le déchargement de la page.Lorsque vous accédez à un autre composant, vous ne sont pas réellement de déchargement de la page.
Ce que vous devez faire est d'utiliser
ngOnDestroy
qui sera appelée lorsque le composant est détruit. Implémente l'interface suivante:https://angular.io/api/core/OnDestroy
Exemple:
Essayer comme ceci :
Simplement utiliser le
window:beforeunload
événement avec HostListener, l'auditeur sera détruite avec le composant.Return false fera une alerte 🙂