Вы должны иметь возможность внедрить BankHttpService
и вызвать метод getBankBranches()
в конструкторе вашего компонента, в котором размещена таблица. В функции обратного вызова Observable вы можете создать новый MatTableDataSource
(передавая данные, возвращаемые службой) и присвоить его this.dataSource
, чтобы он использовался в качестве данных таблицы:
constructor(private _bankHttpService: BankHttpService) {
this._bankHttpService.getBankBranches().subscribe((branches) => {
this.dataSource = new MatTableDataSource(branches);
});
}
HTML-код для mat-table
должен будет определять правильные столбцы, и вы можете отобразить данные в ячейке, используя row.<property_name>
(например, row.bank_id
, если вы хотите отобразить свойство bank_id
JSON):
<mat-table [dataSource]="dataSource" matSort>
<!-- Address Column -->
<ng-container matColumnDef="address">
<mat-header-cell *matHeaderCellDef mat-sort-header> Address </mat-header-cell>
<mat-cell *matCellDef="let row"> {{row.address}} </mat-cell>
</ng-container>
<!-- Bank ID Column -->
<ng-container matColumnDef="bank_id">
<mat-header-cell *matHeaderCellDef mat-sort-header> Bank ID </mat-header-cell>
<mat-cell *matCellDef="let row"> {{row.bank_id}} </mat-cell>
</ng-container>
<!-- Name Column -->
<ng-container matColumnDef="name">
<mat-header-cell *matHeaderCellDef mat-sort-header> Name </mat-header-cell>
<mat-cell *matCellDef="let row"> {{row.bank_name}} </mat-cell>
</ng-container>
<!-- City Column -->
<ng-container matColumnDef="city">
<mat-header-cell *matHeaderCellDef mat-sort-header> City </mat-header-cell>
<mat-cell *matCellDef="let row"> {{row.city}} </mat-cell>
</ng-container>
<!-- District Column -->
<ng-container matColumnDef="district">
<mat-header-cell *matHeaderCellDef mat-sort-header> District </mat-header-cell>
<mat-cell *matCellDef="let row"> {{row.district}} </mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;">
</mat-row>
</mat-table>
displayedColumns
в файле TypeScript компонента таблицы должен отражать столбцы, определенные в HTML:
displayedColumns = ['address', 'bank_id', 'name', 'city', 'district'];
Я создал StackBlitz , демонстрирующий вышеизложенное. Загрузка может занять несколько секунд, поскольку в вашем ответе JSON содержится более 3000 элементов.