Я пытался отобразить простые данные, полученные из локального API, которые я храню в массиве, используя mat-table
, но безрезультатно.Мне удалось это исправить, но я новичок в Angular / Typescript / Programming в целом, и я понятия не имею, почему мое исправление сработало, может кто-нибудь помочь мне понять, почему оно исправилось?
pago.component.ts (до исправления)
export class PagosComponent implements OnInit {
facturasElectricas: FacturaE[] = [];
displayedColumns: string[] = ['fecha', 'monto'];
...
ngOnInit() {
this.getFacturasElectricas();
}
getFacturasElectricas(): void {
const id = +this.route.snapshot.paramMap.get('id');
this.pagoService.getFacturasElectricas().subscribe(facturas => {
facturas.forEach(f => {
if (f.factura.contrato === id && !f.factura.pagado) {
this.facturasElectricas.push(f);
}
});
});
}
}
pago.component.ts (после исправления)
export class PagosComponent implements OnInit {
facturasElectricas: FacturaE[];
displayedColumns: string[] = ['fecha', 'monto'];
...
ngOnInit() {
this.getFacturasElectricas();
}
getFacturasElectricas(): void {
const id = +this.route.snapshot.paramMap.get('id');
this.pagoService.getFacturasElectricas().subscribe(facturas => {
this.facturasElectricas = [];
facturas.forEach(f => {
if (f.factura.contrato === id && !f.factura.pagado) {
this.facturasElectricas.push(f);
}
});
});
}
}
Единственная строка, которую я изменил, была this.facturasElectricas = [];
, поместив его в метод getFacturasElectricas()
.
Вот HTML-часть pago.component.html
<table *ngIf="facturasElectricas" mat-table #table [dataSource]="facturasElectricas">
<ng-container matColumnDef="fecha">
<th mat-header-cell *matHeaderCellDef> Fecha </th>
<td mat-cell *matCellDef="let element"> {{element.factura.fecha}} </td>
</ng-container>
<ng-container matColumnDef="monto">
<th mat-header-cell *matHeaderCellDef> Debe </th>
<td mat-cell *matCellDef="let element"> {{element.monto}}</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
Вывод до исправления
Вывод после исправления