在angularfire2 angular 6中反转可观察的数组

时间:2019-04-12 05:20:37

标签: firebase firebase-realtime-database angularfire2

我正在使用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()}))
       )
      ) ;
  }

2 个答案:

答案 0 :(得分:1)

您可以使用.slice()。reverse()在* ngFor处反转数组

<tr *ngFor="let card of (cards | async)?.slice().reverse();let last = last ">

.slice()创建阵列的副本,而 .reverse()对阵列进行反向操作。

答案 1 :(得分:0)

您可以使用---

*ngFor="let item of items.slice().reverse()"