如何在ngFor(Angular 4)中使用当前值以及下一个迭代值

时间:2018-06-27 18:33:02

标签: javascript angular ngfor

这是我的循环。 我需要在一次迭代中使用活动对象以及下一个活动对象。是否有关于如何执行此操作的想法?

 *ngFor="let activity of course.activities; let i = index"

谢谢:)

2 个答案:

答案 0 :(得分:1)

假设您不希望最后一个元素单独显示

您只需要遍历course.activities.length - 1。那排除了最后一项,因为它显示为next项的last but one项。

public course = {activities : [1,2,3]};

<div *ngFor = "let a of course.activities.slice(1); let i = index">
  {{course.activities[i]}}-- {{course.activities[i+1]}}
</div>

仅在获取数组内元素的索引时才需要循环

DEMO

答案 1 :(得分:0)

我宁愿创建您的数组的块,然后将它们循环并仅取0和1。例如,要获取块,您可以使用(根据您的rxjs版本而有所不同)

export function chunk<T>(arr: T[], chunkSize: number): Observable<T[][]> {
  return Observable.from(arr).pipe(bufferCount(chunkSize)).toArray();
}

然后在模板中循环

<div *ngFor="let activity of chunkedActivities | async">
    {{ activity[0] }} - {{ activity[1] }}
</div>