【发布时间】:2022-01-17 21:29:06
【问题描述】:
我们有需要显示的大量记录,因此我试图在滚动时实现将更多数据附加到 .但是,我无法在我的指令中访问调试器。有人可以帮我在到达底部时触发滚动事件吗?有没有其他方法可以捕获滚动事件以提高页面的性能?
explore.component.html
<div style="overflow: auto !important;height: 488px !important;" scrollTracker (scrollingFinished)="onScrollingFinished()">
<p-tree [value]="files | filter:searchText" selectionMode="single" [(selection)]="selectedFiles"
(onNodeSelect)="nodeSelect($event)" (onNodeExpand)="expandNode($event)" ></p-tree>
</div>
explore.component.ts:
@Output() scrollingFinished = new EventEmitter<void>();
onScrollingFinished() {
this.scrollingFinished.emit();
}
指令:
import { Directive, Output, EventEmitter, HostListener } from '@angular/core';
@Directive({
selector: '[scrollTracker]'
})
export class ScrollTrackerDirective {
@Output() scrollingFinished = new EventEmitter<void>();
emitted = false;
@HostListener("window:scroll", [])
onScroll(): void {
debugger;
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight && !this.emitted) {
this.emitted = true;
this.scrollingFinished.emit();
} else if ((window.innerHeight + window.scrollY) < document.body.offsetHeight) {
this.emitted = false;
}
}
}
【问题讨论】:
标签: angular typescript primeng