angular 5+ 如何使用无限滚动?

How use infinite scrolling with angular 5+?

我正在关注 this 教程,我不确定它是否已过时。

我正在使用@angular/core": "^5.2.0"所以我正在使用这个版本的ngx-infinite-scroll@0.8.3

我已添加:

import { InfiniteScrollModule } from 'ngx-infinite-scroll'; 并在 app.module.ts.

中导入 InfiniteScrollModule

Search.component.ts 中我添加了 directives: [InfiniteScroll] tp @Component 但是当我浏览 'ngx-infinite-scroll' 中的选项时它似乎不再存在了我可以看到 InfiniteScrollDirective 但没有实现它。

我可以让应用程序编译的唯一方法是摆脱 directives: [InfiniteScroll] 但是无限滚动不起作用(它只是一个普通的滚动)。

Html:

<div class="search-results"
     infiniteScroll
     [infiniteScrollDistance]="2"
     [infiniteScrollThrottle]="50"
     (scrolled)="onScroll()">
  <div *ngFor="let name of ['a','a','b','e','r','t','t','e','b','e','r','t','ererer','a','a','b','e','r','t','t','e','b','e','r','t','ererer']">
    <div>
      {{name}}
    </div>
  </div>
</div>

CSS:

.search-results {
  height: 100px;
  overflow-y: scroll;
}

我的问题是什么可以实现无限滚动?

您不需要 directives: [InfiniteScroll]。模块里面的Import就够了

关于卷轴本身 - 您是否看到对您定义的函数的调用 (onScroll())?

基本上,只要包含指令的元素的一定百分比显示在视口中(默认为 80%),指令就会调用 (scrolled) 函数。

例如,如果您有一个高度为 500px 的 table,那么当它的 400px 进入视口(您在屏幕上看到的内容)时,将调用滚动功能。