【问题标题】:How to start loop from index 1 instead of index 0 in *ngFor loop in angular?如何在 *ngFor 循环中以角度从索引 1 而不是索引 0 开始循环?
【发布时间】:2023-01-09 18:06:10
【问题描述】:
我目前正在从虚拟 api 获取一些数据,响应数据从 1 开始,索引当前从 0 开始。
如何从 1 而不是 0 开始索引循环?
按照以下 *ngFor 的 html:
组件.html
<div class="all-users" >
<div class="nested-items" *ngFor="let data of flattenedResponse[0]; let i=index; " (click)="switchUsers(i)">
<h4>{{i}}</h4>
<img src="{{data.image}}" alt="profile">
</div>
</div>
【问题讨论】:
标签:
javascript
html
angular
typescript
angular-http
【解决方案1】:
为什么不只执行以下操作:
<div class="all-users" >
<div class="nested-items" *ngFor="let data of flattenedResponse[0]; let i=index; " (click)="switchUsers(i)">
<h4>{{i + 1}}</h4>
<img src="{{data.image}}" alt="profile">
</div>
</div>
我不知道有什么方法可以更改索引的起始位置,但这种方法适用于大多数情况
【解决方案2】:
你试过吗:
<div class="all-users">
<div class="nested-items" *ngFor="let data of flattenedResponse[0]; let i=index; " (click)="switchUsers(i+1)">
<h4>{{i+1}}</h4> <img src="{{data.image}}" alt="profile">
</div>
</div>
或者你可以像这样跳过第一个元素:
<div class="nested-items" *ngFor="let data of flattenedResponse[0] | slice:1; let i=index; " (click)="switchUsers(i)"></div>
【解决方案3】:
您可以使用 *ngIf 显式跳过第一个索引:
<div class="all-users" >
<div class="nested-items" *ngFor="let data of flattenedResponse[0]; let i=index;" (click)="switchUsers(i)">
<ng-container *ngIf="index !== 0">
<h4>{{i}}</h4>
<img src="{{data.image}}" alt="profile">
</div>
</ng-container>
</div>
</div>