Meu código:
<li *ngFor="let item of list; let i=index" class="dropdown-item" (click)="onClick(item)">
<template [ngIf]="i<11">{{item.text}}</template>
</li>
Estou tentando exibir apenas 10 elementos de lista em qualquer ponto. Conforme sugerido na resposta aqui , usei o ngIf, mas isso resulta em itens de lista vazios (além de 10) aparecendo na página.
slice:0:10
o array original ??slice
retorna uma cópia e não afeta a matriz original| slice:0:10
pipe, é ótimo, me ajudou a construir uma lista com um botão "Ver mais" que incrementa oslices
segundo argumento de.Isso funciona muito bem:
fonte
Você pode aplicar diretamente
slice()
à variável. StackBlitz Demofonte
Por exemplo, digamos que queremos exibir apenas os primeiros 10 itens de uma matriz, poderíamos fazer isso usando o SlicePipe assim:
fonte
Além da resposta de @ Günter , você pode usar trackBy para melhorar o desempenho. trackBy assume uma função que possui dois argumentos: índice e item. Você pode retornar um valor único no objeto da função. Isso irá parar de renderizar novamente os itens já exibidos no ngFor. Em seu html, adicione trackBy conforme abaixo.
E escreva uma função como esta no seu arquivo .ts.
fonte
html
datilografado
css
fonte
Em seu arquivo ts
fonte