如何跳过 *ngFor 中的第一项和最后一项

alo*_*ica 4 angular

我有一个物品清单。第一行是一种标题。最后一行是一种页脚。我的页眉和页脚需要特殊处理,所以我不想通过这个循环显示。

json:

{
  "items": [1,2,3,4]
}
Run Code Online (Sandbox Code Playgroud)

我现在的代码:

<ul *ngFor="let item in items">
 <li>{{item}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

输出应该是:

<ul>
 <li>2</li>
 <li>3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

alo*_*ica 9

您可以首先和最后使用局部变量:

  • first: boolean: 当该项是可迭代对象中的第一项时为 True。
  • last: boolean: 当该项是迭代中的最后一项时为 True。
<ul>
    <ng-container *ngFor="let item of items; first as isFirst; last as isLast">
        <li *ngIf="!isFirst && !isLast">{{item}}</li>
    </ng-container>
</ul>
Run Code Online (Sandbox Code Playgroud)


alo*_*ica 6

您可以使用一个很好的旧索引:

index: number: 可迭代对象中当前项的索引。

<ul>
    <ng-container *ngFor="let item of items; let i=index">
        <li *ngIf="i != 0 && i != items.length-1">{{item}}</li>
    </ng-container>
</ul>
Run Code Online (Sandbox Code Playgroud)


alo*_*ica 6

您可以使用闪亮的切片管道:

创建一个新的ArrayString包含元素的子集(切片)。

<ul>
    <li *ngFor="let item of items | slice:1:items.length-1">{{item}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)