поменять наблюдаемый массив в angularfire2 angular 6 - PullRequest
0 голосов
/ 12 апреля 2019

Я использую массив Observable для поступления данных в реальном времени.Данные поступают в порядке возрастания, но мне нужно, чтобы они отображались в обратном порядке.Примеры в интернете до угловых 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()}))
       )
      ) ;
  }

1 Ответ

1 голос
/ 12 апреля 2019

Вы можете повернуть массив в * ngFor, используя .slice (). Reverse ()

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

.slice () создает копию массива и .reverse () выполняет обратное действие с вашим массивом.

...