J'écris une directive dans Angular 2 qui attache un gestionnaire d'événements avec des événements globaux comme l'événement de défilement de fenêtre utilisant l'attribut d'hôte dans la section de métadonnées. Le code est donné ci-dessous:Comment faire pour dissocier l'événement global Angular 2
<html>
...
<body>
<div listen-to-scroll>
Some big fat content is here
</div>
</body>
<html>
Et le look fichier .ts aime pour listen-to-scroll
directive comme suit:
@Directive({
selector: '[listen-to-scroll]',
host: {
(window:scroll): '_handleScrollEvent($event)'
}
})
export class ListenToScrollDirective {
_handleScrollEvent(event: Event) {
console.log('event occurred');
}
}
J'ai observé que le gestionnaire de défilement enregistré par la directive était toujours active. Alors, comment se désinscrire de l'écoute de l'événement de défilement? Je m'attends à quelque chose de propre, tout comme l'inscription à l'événement via l'objet hôte.
il semble qu'il n'y a actuellement aucun moyen de le faire, vérifiez [this] (https://github.com/angular/angular/issues/16366) –
Merci @Maximus. Il semble toujours un problème qui pend. –