Я использую сервис для извлечения данных из моей коллекции пожарного депо, и теперь я хочу отсортировать документы по одному из полей с надписью «дата». Прикрепленные коды ниже:
BARCODE.SERVICE.TS
import { Injectable } from '@angular/core';
import { AngularFirestore, AngularFirestoreCollection, AngularFirestoreDocument } from '@angular/fire/firestore';
import { Observable } from 'rxjs';
import { Barcode } from '../models/barcode';
@Injectable({
providedIn: 'root'
})
export class BarcodeService {
barcodesCollection: AngularFirestoreCollection<Barcode>;
barcodes: Observable<Barcode[]>;
constructor(public afs: AngularFirestore) {
this.barcodesCollection = this.afs.collection('barcodes');
this.barcodes = this.barcodesCollection.valueChanges();
}
getBarcodes(){
this.barcodes = this.afs.collection('barcodes').valueChanges();
return this.barcodes;
}
addBarcode(barcode: Barcode) {
this.barcodesCollection.add(barcode);
}
}
COMPONENT.TS (отображается только обязательная часть)
ngOnInit() {
this.barcodeService.getBarcodes().subscribe(barcodes => {
this.barcodes = barcodes;
});
}
COMPONENT.HTML
<div *ngIf="barcodes.length > 0;else noBarcodes">
<div *ngFor="let barcode of barcodes">
<a (click)="viewdet(barcode.id)"><table >
<tr>
<td><h3 class="big"><b>{{barcode.vendor}}</b></h3></td>
<td rowspan="3"><span>›</span></td>
</tr>
<tr>
<td><h3><b>Reel No:</b> {{barcode.reelno}}</h3></td>
</tr>
<tr>
<td><h3><b>Date:</b> {{barcode.date}}</h3></td>
</tr>
</table></a>
</div>
</div>