Команда Angular Material разработала хорошую документацию на https://material.angular.io, чтобы помочь вам успешно применить какие-либо функции их пакета.В частности, ваш код может быть легко изменен для использования виртуальной прокрутки.
В вашем модуле (либо app.module.ts, либо в модуле для вашей конкретной функции):
import { ScrollingModule } from '@angular/cdk/scrolling';
@NgModule({
imports: [
// other imports,
ScrollingModule,
],
// other normal module declaration stuff
})
export class AppModule { }
Затем,в вашем component.html:
<cdk-virtual-scroll-viewport [itemSize]='32'> <!-- or whatever the size of each item is -->
<table class="table table-responsive">
<tr *cdkVirtualFor="let s of data | async | searchFilter: {keyName: searchText}">
<td>Display some data: {{s.someProperty}}</td>
</tr>
</table>
</cdk-virtual-scroll-viewport>
Обратите внимание:
- Вместо директивы * ngFor для строк таблицы, вы должны использовать директиву * cdkVirtualFor
- Вы должны обернуть всю таблицу в набор тегов и указать высоту в itemSize (не забудьте скобки вокруг itemSize)
- Вам не нужно менять способ доступа к своим данным,кроме использования директивы * cdkVirtualFor, как упомянуто выше;он предназначен для использования точно так же, как и * ngFor
Более подробную информацию об использовании виртуальной прокрутки с таблицами и списками можно найти здесь: https://material.angular.io/cdk/scrolling/overview#elements-with-parent-tag-requirements