У меня есть таблица угловых материалов, в которую я хочу получить данные из службы.Это мой сервис.
import { Injectable } from "@angular/core";
import { HttpClient } from "@angular/common/http";
import { Message } from '../messages/message-table/message.model';
@Injectable()
export class MessageService {
constructor(private http: HttpClient) {}
getMessageTableData() {
return this.http.get<Message[]>('<removed>');
}
}
Это интерфейс Сообщение для данных
export interface Message {
RequestID: string;
RequestStatus: string;
RequestorName: string;
SubmissionDate: string;
ApproverName: string;
ApprovalDate: string;
Subject: string;
MessageStatus: string;
ReadStatus: string;
}
В моем файле component.ts я могу отображать данные в консоли с помощью этого,
ngOnInit() {
this.messageService.getMessageTableData().subscribe(
(response) => console.log(response)
)
}
Я видел пример кода на веб-сайте Angular, но так как в моей таблице много фильтрации на стороне клиента, я хочу использовать MatTableDataSource для своего dataSource.В этом примере используется пользовательский источник данных, и я не могу включить в него свои фильтры.Как я могу отобразить эти данные, которые поступают в форме JSON из моего сервиса, в мою таблицу?
Прикрепление HTML-кода для моей таблицы
<table mat-table [dataSource]="dataSource" matSort class="mat-elevation-z8">
<ng-container matColumnDef="RequestID">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Request ID </th>
<td mat-cell *matCellDef="let element"> {{element.RequestID}} </td>
</ng-container>
<ng-container matColumnDef="RequestStatus">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Request Status </th>
<td mat-cell *matCellDef="let element"> {{element.RequestStatus}} </td>
</ng-container>
<ng-container matColumnDef="RequestorName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Requestor Name </th>
<td mat-cell *matCellDef="let element"> {{element.RequestorName}} </td>
</ng-container>
<ng-container matColumnDef="SubmissionDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Submission Date </th>
<td mat-cell *matCellDef="let element"> {{element.SubmissionDate}} </td>
</ng-container>
<ng-container matColumnDef="ApproverName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Approver Name </th>
<td mat-cell *matCellDef="let element"> {{element.ApproverName}} </td>
</ng-container>
<ng-container matColumnDef="ApprovalDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Approval Date </th>
<td mat-cell *matCellDef="let element"> {{element.ApprovalDate}} </td>
</ng-container>
<ng-container matColumnDef="Subject">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Subject </th>
<td mat-cell *matCellDef="let element"> {{element.Subject}} </td>
</ng-container>
<ng-container matColumnDef="MessageStatus">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Message Status </th>
<td mat-cell *matCellDef="let element"> {{element.MessageStatus}} </td>
</ng-container>
<ng-container matColumnDef="ReadStatus">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Read Status </th>
<td mat-cell *matCellDef="let element"> {{element.ReadStatus}} </td>
</ng-container>
</table>