在 angularfire2 angular 6 中反转可观察数组
reverse an observable array in angularfire2 angular 6
我正在使用 Observable 数组来接收实时数据。数据按升序排列,但我需要它以相反的顺序显示。 Internet 上的示例在 angular 5 之前,语法不再有效。请指教
html
<tr *ngFor="let card of cards | async;let last = last ">
<td> <img [src]="card.frontImageUrl" width=200 height="100"></td>
</td>
refreshCards(){
this.cards = this.dataSvc.fetchCards().pipe(
map((cards: any) => cards.map(cardObj => new Card(cardObj.key, cardObj._frontImageUrl, cardObj._backImageUrl, cardObj._status, cardObj._date, cardObj._userId, cardObj._message)))
);
}
呼叫 firedb
fetchCards(){
this.cardList = this.db.list<Card>('adminCardQueue', ref => ref.orderByChild('_date').limitToLast(50))
return this.cardList.snapshotChanges().pipe(
map(changes =>
changes.map(c => ({ key: c.payload.key, ...c.payload.val()}))
)
) ;
}
您可以使用 .slice().reverse() 在 *ngFor 反转数组
<tr *ngFor="let card of (cards | async)?.slice().reverse();let last = last ">
.slice() 创建数组的副本,.reverse() 对您的数组执行反向操作。
你可以使用---
*ngFor="let item of items.slice().reverse()"
我正在使用 Observable 数组来接收实时数据。数据按升序排列,但我需要它以相反的顺序显示。 Internet 上的示例在 angular 5 之前,语法不再有效。请指教
html
<tr *ngFor="let card of cards | async;let last = last ">
<td> <img [src]="card.frontImageUrl" width=200 height="100"></td>
</td>
refreshCards(){
this.cards = this.dataSvc.fetchCards().pipe(
map((cards: any) => cards.map(cardObj => new Card(cardObj.key, cardObj._frontImageUrl, cardObj._backImageUrl, cardObj._status, cardObj._date, cardObj._userId, cardObj._message)))
);
}
呼叫 firedb
fetchCards(){
this.cardList = this.db.list<Card>('adminCardQueue', ref => ref.orderByChild('_date').limitToLast(50))
return this.cardList.snapshotChanges().pipe(
map(changes =>
changes.map(c => ({ key: c.payload.key, ...c.payload.val()}))
)
) ;
}
您可以使用 .slice().reverse() 在 *ngFor 反转数组
<tr *ngFor="let card of (cards | async)?.slice().reverse();let last = last ">
.slice() 创建数组的副本,.reverse() 对您的数组执行反向操作。
你可以使用---
*ngFor="let item of items.slice().reverse()"