我不知道这是否是最佳方法,但让我解释一下我在做什么。
我有一个带离子和角度的移动应用程序。在它上面我有一个ngFor,它在一个可观察的数据中显示并正常显示。我提出一个条件,即基于ngFor索引,每5条记录在另一个带有广告的可观察对象中执行新的ngFor。
我希望此广告使用PIPE只返回一个随机记录,但是当我使用InfiniteScroll加载更多数据时,它会重新混合所有以前加载的广告。
是否可能或是更好的方法?
Heres de template snippet
<div *ngFor="let item of produtos | async; let i = index">
<ion-card >
<ion-item>
{{ item.name }}
</ion-item>
</ion-card>
<div *ngIf="( (i % 4 == 0) && ( x > 0 ) )" >
<ion-card >
<ion-item *ngFor="let ads of allads | onerandom" >
<p>{{ ads?.adsCompany }}</p>
</ion-item>
</ion-card>
</div>
</div>
继承人PIPE
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'onerandom'
})
export class oneRandomObject implements PipeTransform {
transform(values): any {
var myrand = Math.floor(Math.random() * values.length);
var temparray = []
temparray[myrand] = values[myrand];
return temparray;
}
}
我不知道如何修复它而不重新混合我已加载的广告。