Angular директива бесконечной прокрутки не вызывается - PullRequest
0 голосов
/ 03 мая 2020

Я создал директиву прокрутки, чтобы проверять, прокручивается ли представление, оно должно загружать больше данных (часть загрузки данных работает). К сожалению, мой метод onScroll никогда не вызывается. Вот мой код для моей директивы:

import { Directive, HostListener, EventEmitter, Output, ElementRef } from '@angular/core';

 @Directive({
 // tslint:disable-next-line:directive-selector
selector: '[scrollable]'
})
export class ScrollableDirective {

@Output() scrollPosition = new EventEmitter();

constructor(public el: ElementRef) { }

 @HostListener('scroll', ['$event'])
 onScroll(event) {
try {

  const top = event.target.scrollTop;
  const height = this.el.nativeElement.scrollHeight;
  const offset = this.el.nativeElement.offsetHeight;

  // emit bottom event
  if (top > height - offset - 1) {
    this.scrollPosition.emit('bottom');
  }

  // emit top event
  if (top === 0) {
    this.scrollPosition.emit('top');
  }

} catch (err) {}
}

}

Я реализовал эту директиву в своем импорте в моем app.module.

вот как я ее называю:

<div class="content" scrollable (scrollPosition)="scrollHandler($event)">

и вот мой компонент:

scrollHandler(e) {
  console.log('called', e);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...