Angular 9 CDK无限滚动使用scrolledIndexChange加载更多数据

时间:2020-05-05 12:57:05

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

我正在尝试使用cdk的虚拟滚动组件执行无限滚动,但没有成功。

我正在使用scrolledIndexChange作为索引更改来加载更多数据,但是该索引是恒定的。索引的值没有改变

提前谢谢

.html

<cdk-virtual-scroll-viewport  itemSize="100" (scrolledIndexChange) ="index($event)"   >

 <li  *cdkVirtualFor="let item of infinite; trackBy: trackByIdx" > 
     {{item.purchase_stock_id}}

 </li>
</cdk-virtual-scroll-viewport>

.ts

index(val) {

    console.log(val)
    this.page ++ ;
    if(this.page == this.total_pages) {
      console.log("finished")
      return
    }      
    const end = this.viewport.getRenderedRange().end;      
    const total = this.viewport.getDataLength();      
    console.log(`${end}, '>=', ${total}`);               
        if(end === total) {             
         this.getdata(this.limit, this.skip)            
        }

     } 


getdata(limit, skip){

    this.FactService.getdata(limit, skip).subscribe(data =>{
      if(data){
        console.log(data);
        this.infinite = this.infinite.concat(data)
        }
    })
  }

0 个答案:

没有答案