根据字段值降序排序列表
Sort List Descending Based on a Field Value
我需要对 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));
}
Angular 不再提供任何用于排序的管道(例如 orderBy
管道)。您可以通过 here.
阅读更多相关信息
但是,您可以选择在 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;
});
我需要对 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));
}
Angular 不再提供任何用于排序的管道(例如 orderBy
管道)。您可以通过 here.
但是,您可以选择在 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;
});