使用ngFor打印列表的i和i + 1元素

时间:2018-10-22 08:19:45

标签: angular ngfor

我想通过同时打印i和i + 1元素来打印列表的内容。这是一个如何使用Java或任何后端编程语言实现的虚拟示例:

List list = new ArrayList<>();
for(int i = 0; i<list.size() - 1; i++)
   System.out.println(list[i] + " " + list[i+1]);

我想要的是使用ngFor指令在Angular中实现相同的行为。我尝试使用索引,但由于某种原因,直到长度-1个元素,我才能让ngFor进行迭代。

编辑:要对该问题进行更具体的说明:

<div class="row" *ngFor="let item of items; let index=index">
   <div class="col">
     {{items[index]}}
   </div>
   <div class="col">
     {{items[index+1]}}
   </div>
</div>

2 个答案:

答案 0 :(得分:2)

好吧,如果您去有关*ngFor的文档或任何其他博客,您可能会在这样的分号后遇到index

<li *ngFor="let item of items; index as i;">{{item}} - {{ items[i+1] }}</li>

More to find here.

Stackblitz example

答案 1 :(得分:0)

是的,您可以使用odd局部变量:

<ng-container *ngFor="let item of items; let i = index; let odd = odd">
   <li *ngIf="odd">{{items[i]}} - {{items[i+1]}}</li>
</ng-container>

但是使用even更安全(因为如果数组的长度是偶数,它不会破坏应用程序):

<ng-container *ngFor="let item of items; let i = index; let even = even">
   <li *ngIf="even">{{items[i-1]}} - {{items[i]}}</li>
</ng-container>