blob: 73e9f901beb5d12a5e12e8cffe583c860e16da5e [file] [log] [blame] [view]
# td-virtual-scroll-container
`td-virtual-scroll-container` element calculates the items that fit in the viewport and only renders those, improving resource efficiency in long lists.
**NOTE:** every row has to have the same height, since there are some calculations assumed for the total scroll height.
## API Summary
#### Inputs
+ data?: any[]
+ List of items to virtually iterate on.
+ trackBy?: TrackByFunction
+ This accepts the same trackBy function [ngFor] does.
#### Events
+ bottom?: function
+ Method to be executed when user scrolled to the last item of the list. No value is emitted.
+ An [ITdVirtualScrollBottomEvent] event is emitted
#### Methods
+ refresh?: function()
+ Method to refresh and recalculate the virtual rows
+ scrollTo?: function(row: number)
+ Method to scroll to a specific row of the list.
+ scrollToStart?: function()
+ Method to scroll to the start of the list.
+ scrollToEnd?: function()
+ Method to scroll to the end of the list.
## Setup
Import the [CovalentVirtualScrollModule] in your NgModule:
```typescript
import { CovalentVirtualScrollModule } from '@covalent/core/virtual-scroll';
@NgModule({
imports: [
CovalentVirtualScrollModule,
...
],
...
})
export class MyModule {}
```
## Usage
Example for HTML usage:
```html
<td-virtual-scroll-container [style.height.px]="400"
[data]="data"
[trackBy]="trackByFn"
(bottom)="fetchMoreData()">
<ng-template let-row="row"
let-index="index"
let-first="first"
let-last="last"
let-odd="odd"
let-even="even"
tdVirtualScrollRow>
{{row}}
</ng-template>
</td-virtual-scroll-container>
```