Мой код:
<li *ngFor="let item of list; let i=index" class="dropdown-item" (click)="onClick(item)">
<template [ngIf]="i<11">{{item.text}}</template>
</li>
Я пытаюсь отображать только 10 элементов списка в любой момент. Как предлагается в ответе здесь , я использовал ngIf, но это приводит к тому, что на странице отображаются пустые элементы списка (более 10).
slice:0:10
исходный массив ??slice
возвращает копию и не влияет на исходный массив| slice:0:10
великолепен, он помог мне создать список с кнопкой «Еще», которая увеличиваетslices
второй аргумент.Вы можете напрямую применить
slice()
к переменной. Демо StackBlitzисточник
Это очень хорошо работает:
источник
Например, допустим, мы хотим отобразить только первые 10 элементов массива, мы могли бы сделать это с помощью SlicePipe следующим образом:
источник
В дополнение к ответу @Gunter вы можете использовать trackBy для повышения производительности. trackBy принимает функцию с двумя аргументами: index и item. Вы можете вернуть уникальное значение в объекте из функции. Это остановит повторный рендеринг уже отображаемых элементов в ngFor. В вашем html добавьте trackBy, как показано ниже.
И напишите такую функцию в вашем файле .ts.
источник
html
машинопись
css
источник
В вашем ts файле
источник