【问题标题】:Angular virtual scroll reset to top角度虚拟滚动重置到顶部
【发布时间】:2019-05-13 20:16:06
【问题描述】:

在我的 Angular 应用程序中,我正在使用来自 Angular cdk 的 Virtual Scroll

这是我的组件的模板:

<cdk-virtual-scroll-viewport itemSize="50" class="example-viewport">
  <div *cdkVirtualFor="let item of items" class="example-item">{{item}}</div>
</cdk-virtual-scroll-viewport>

在我的组件类中,我有一个方法可以更改数组items,为其提供新内容。每次调用此方法时,数组的大小都会发生变化:

reload(newItems) {
  this.items = newItems;
}

调用reload 方法后,项目数组正确更新,视图反映了此更改。但是,滚动不会回到顶部。

每次更改items 数组时,我希望虚拟滚动重置顶部的滚动。

【问题讨论】:

    标签: angular typescript angular-cdk virtualscroll angular-cdk-virtual-scroll


    【解决方案1】:

    我通过在我的组件中注入 CdkVirtualScrollViewport 解决了这个问题:

    import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
    
    // ...
    export class MyComponent {
      @ViewChild(CdkVirtualScrollViewport) virtualScroll: CdkVirtualScrollViewport;
    
      // ...
    
      reload(newItems) {
        this.items = newItems;
        this.virtualScroll.scrollToIndex(0);
      }
    }
    

    调用this.virtualScroll.scrollToIndex(0); 成功了。

    【讨论】:

    • 所以如果我们使用多个 cdkvirtualscroll 意味着我们如何重置 scrollToIndex(0) 参考例子:stackblitz.com/edit/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 2019-07-13
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多