Angular mobileQuery.addEventListener не является функцией в safari, как исправить?

#ios #angular #safari #angular-material

#iOS #angular #safari #angular-материал

Вопрос:

Я использую angular material sidenav, и вместе с ним появляются некоторые точки останова на максимальной ширине устройства.

вот примеры

Это выглядит так:

 public mobileQuery: MediaQueryList;
private _mobileQueryListener: () => void;

constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher){
    this.mobileQuery = media.matchMedia('(max-width: 992px)');
    this._mobileQueryListener = () => changeDetectorRef.detectChanges();
    this.mobileQuery.addEventListener('change', this._mobileQueryListener);
}

ngOnDestroy(): void {
    this.mobileQuery.removeEventListener('change', this._mobileQueryListener);
}
 

В Safari я получаю эту ошибку :

this.mobileQuery.addEventListener не является функцией

То же самое относится и к this.mobileQuery.removeEventListener.

Как это исправить?

Ответ №1:

Попробуйте с этим

 this.mobileQuery.addListener(this._mobileQueryListener);
 

и

 this.mobileQuery.removeListener(this._mobileQueryListener);