Не удается удалить прослушиватель событий fullscreenchange в ngOnDestroy Angular 6
Я пытался вызвать .removeEventListener () в ngOnDestroy, который не удаляет события.Я также попытался вызвать removeEventListeners в функции после 10-секундного тайм-аута, и события по-прежнему продолжают срабатывать после.
import
import { DOCUMENT } from '@angular/common';
import { Component, HostBinding, Inject, OnInit, OnDestroy } from '@angular/core';
Код компонента
elem: any;
constructor(private framesService: FramesService, private route: ActivatedRoute,
@Inject(DOCUMENT) private document: Document) { }
ngOnInit() {
this.elem = this.document.documentElement;
this.document.addEventListener('fullscreenchange', this.onFullscreenChange.bind(this));
this.document.addEventListener('mozfullscreenchange', this.onFullscreenChange.bind(this));
}
onFullscreenChange(event: Event) {
event.preventDefault();
console.log('Fullscreen event fired');
}
onViewFrame() {
if (this.elem.requestFullscreen) { // Chrome
this.elem.requestFullscreen();
} else if (this.elem.mozRequestFullScreen) { // Firefox
this.elem.mozRequestFullScreen();
}
}
ngOnDestroy() {
this.document.removeEventListener('fullscreenchange', this.onFullscreenChange.bind(this));
this.document.removeEventListener('mozfullscreenchange', this.onFullscreenChange.bind(this));
}
Функция onViewFrame () связана с событием нажатия кнопки на странице.
Каждый раз, когда создается этот компонент, события добавляются, но они никогда не удаляются.Таким образом, если этот компонент загружается 3 раза во время сеанса просмотра на странице, он будет запускать console.log три раза каждый раз, когда запускается полный экран или клавиша ESC используется для выхода из полноэкранного режима.Хотел бы, чтобы события удалялись после отъезда, чтобы в следующий раз их можно было правильно перерегистрировать.