如何对 * ngFor 应用数量限制?

因为限制过滤器已经从 Angular 2 + 消失了,我怎样才能为一个简单的 * ngFor 语句应用限制呢?

<div *ngFor="#tweet of singleCategory">
{{ tweet }}
</div>

我不希望 * ngFor 语句循环遍历 singleCategory 的所有元素,我希望将其限制为只有2个结果。我相信它可以用自定义管道完成,但我不知道如何实现它。

谢谢你。

98888 次浏览

可以使用索引对元素应用 ngIf:

<div *ngFor=" let tweet of singleCategory;  let i=index">
<div *ngIf="i<2">
\{\{tweet}}
</div>
</div>

如果你不想要包装 div,看看 模板语法:

<ng-template ngFor let-tweet [ngForOf]="singleCategory" let-i="index">
<div [ngIf]="i<2">
\{\{tweet}}
</div>
</ng-template>

最好是首先使用过滤器过滤组件中的元素,以避免在显示数据时出现不必要的循环:

public get singleCategory() {
return this.categories.filter((item, index) => index > 2 )
}

还有创建管道的选项(参见链接的副本)