Как исправить «Свойство wheelDelta не существует в типе WheelEvent» при обновлении до angular 7, rxjs6? - PullRequest
0 голосов
/ 18 января 2019

Я обновляюсь до angular7 с помощью rxjs6: в типе mouseWheelEvent я получаю "Property 'wheelDelta' does not exist on type 'WheelEvent'".

Есть ли у нас альтернатива для wheelDelta?

mouseWheelFunc(event: MouseWheelEvent): void {

    //  var event = window.event || event; // old IE support

    let delta = Math.max(-1, Math.min(1, (event.wheelDelta || -event.detail)));

    if ( delta > 0) {
      this.mouseWheelUp.emit(event);
    } else if ( delta < 0) {
      this.mouseWheelDown.emit(event);
    }

    // for IE
    event.returnValue = false;
    // for Chrome and Firefox
    if ( event.preventDefault) {
      event.preventDefault();
    }
  }

ОШИБКА в SRC / модули / компоненты / числовой-шаговый / mousewheel.directive.ts (23,49): ошибка TS2339: свойство 'wheelDelta' не существует для типа 'WheelEvent'.

1 Ответ

0 голосов
/ 30 января 2019

Кажется, что у WheelEvent больше нет этого свойства, как говорится. Теперь они добавили deltaY и deltaX.

Теперь вам нужно получить доступ к event.deltaY вместо event.wheelData.

Но deltaY имеет противоположное значение wheelData. Это означает, что когда wheelData на событии был положительным (прокрутить вверх), deltaY будет отрицательным числом, и наоборот.

Пример:

Изменить это:

        zoomScroll(event: WheelEvent) {
            if (event.wheelDelta > 0) {
                this.zoomIn();
            } else if (event.wheelDelta < 0) {
                this.zoomOut();
            }
        }

Для этого:

       zoomScroll(event: WheelEvent) {
           if (event.deltaY < 0) {
               this.zoomIn();
           } else if (event.deltaY > 0) {
               this.zoomOut();
           }
    }

источник: https://github.com/Microsoft/TypeScript/issues/9071

...