如何区分同一组件中的多个虚拟滚动的scrollDispatcher?

时间:2019-06-04 08:47:23

标签: angular angular-material angular-cdk angular-cdk-virtual-scroll

我在同一组件中使用了(A,B,C,D)的多个虚拟滚动。如果我滚动,则需要根据itemSize追加数据。同样,对于B,C,D卷轴也是如此。但是我无法区分滚动(A,B,C,D)

我在ngAfterViewInit中使用了ScrollDispatcher,并且在滚动发生时增加页码并从API获取数据,将其追加到滚动

import { CdkVirtualScrollViewport, ScrollDispatcher } from '@angular/cdk/scrolling';

constructor(private scrollDispatcher: ScrollDispatcher, private zone:NgZone) { }

ngAfterViewInit(): void {    
   this.scrollDispatcher.scrolled(500)
    .subscribe((viewport: CdkVirtualScrollViewport) => {
      if(viewport) {
        this.searchPageNumber++;
        this.nextSearchPage(this.searchPageNumber);
      }
   });
}

nextSearchPage(pageNumber: number): void {
   this.zone.run( () =>{
    setTimeout( () => {
       //get result from API and Bind data here
    },200);  
   });
}

0 个答案:

没有答案