Сортировка списка по убыванию по значению поля - PullRequest
0 голосов
/ 03 июля 2019

Мне нужно отсортировать список полей на основе значений из коллекции Firebase.Это поле называется rankeamento, его максимальное значение равно 10, а минимальное 0. Список должен сначала представить элемент с наибольшим значением и т. Д.(Этот список будет добавлен в виде слайдов).

Я исследовал канал, но все еще безуспешно

HTML =>

<ion-slides>
        <ion-slide *ngFor="let produto of produtos">
          <ion-card>
            <ion-card-header>
              <ion-card-title>{{ produto.nome }}</ion-card-title>
            </ion-card-header>

            <ion-card-content>
              <ion-avatar slot="start">
                <ion-img [src]="produto.caminho_imagem"></ion-img>
              </ion-avatar>
            </ion-card-content>

            <div class="ion-text-center ion-padding-bottom ion-padding-top">
              <ion-checkbox></ion-checkbox>
            </div>
          </ion-card>
        </ion-slide>
      </ion-slides>

TS =>

public produtos: any[] = [];

ngOnInit() {

    this._firestoreService.getCollection('produto')
      .pipe(takeUntil(this._unsubscribeAll))
      .subscribe(produtos => {
        // FIELD PRODUTO.RANKEAMENTO \\
        this.produtos = produtos;
        this.loading = false;
      });

    this.modoUso.valueChanges
      .pipe(takeUntil(this._unsubscribeAll))
      .subscribe(value => this.onChangeModoUso.emit(value));

  }

1 Ответ

0 голосов
/ 03 июля 2019

Angular больше не предоставляет трубы для сортировки (например, труба orderBy). Вы можете прочитать об этом больше здесь .

Однако вы можете выбрать сортировку списка после возврата наблюдаемых в блоке subscribe(), используя JavaScript Array.sort () .

this._firestoreService.getCollection('produto')
  .pipe(takeUntil(this._unsubscribeAll))
  .subscribe(produtos => {
    // FIELD PRODUTO.RANKEAMENTO \\
    this.produtos = produtos.sort((a, b) => b.rankeamento - a.rankeamento);
    this.loading = false;
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...