Возможно, мой вопрос может показаться возможным дубликатом этого вопроса. Однако я не понимаю ответ, данный там, поэтому я спрашиваю его снова, может ли кто-нибудь помочь мне.У меня есть таблица матов, которую я использую для отображения записей клиентов.Я показываю следующие детали.Идентификатор клиента, имя, фамилия, город и статус (активный / неактивный).В последнем столбце моей таблицы соответствия у меня есть кнопка удаления, чтобы удалить запись клиента.Если я удаляю запись, статус меняется на Неактивный.Однако в моем случае статус не изменится, пока я не обновлю свою страницу.Как я могу изменить статус, не обновляя мою страницу.Я использовал новый new MatTableDataSource<>([])
для повторной инициализации таблицы mat. Я думал, что это решит мою проблему, но это не так.
HTML-код для таблицы mat
// Delete function
deleteCustomer(element) {
this.customer360Service.deleteCustomer(element.id).subscribe(
data => {
console.log(data);
console.log(this.customerId);
this.snackbar.open('Customer Deleted Successfully', 'Close', {
duration: 3000
});
this.customerSearchRecordList = new MatTableDataSource<Customer>([this.customerSearchRecord]);
},
err => {
console.log('***', this.customerId);
this.snackbar.open('Failed To Delete Customer', 'Close', {
duration: 3000
});
}
);
}
<mat-table [dataSource]="customerSearchRecordList" matSort>
<ng-container matColumnDef="index">
<mat-header-cell *matHeaderCellDef> Number </mat-header-cell>
<mat-cell *matCellDef="let element; let i = index">{{ i + 1 }}</mat-cell>
</ng-container>
<!-- Customer Id Column -->
<ng-container matColumnDef="id">
<mat-header-cell *matHeaderCellDef>Customer Id</mat-header-cell>
<mat-cell *matCellDef="let element">{{ element.id }}</mat-cell>
</ng-container>
<!-- First Name Column -->
<ng-container matColumnDef="firstName">
<mat-header-cell *matHeaderCellDef>First Name</mat-header-cell>
<mat-cell *matCellDef="let element">{{ element.individualCustomer.primaryFirstName }}</mat-cell>
</ng-container>
<!-- Last Name Column -->
<ng-container matColumnDef="lastName">
<mat-header-cell *matHeaderCellDef>Last Name</mat-header-cell>
<mat-cell *matCellDef="let element">{{ element.individualCustomer.primaryLastName }}</mat-cell>
</ng-container>
<!-- Status Column -->
<ng-container matColumnDef="status">
<mat-header-cell *matHeaderCellDef>Status</mat-header-cell>
<mat-cell
*matCellDef="let element"
[ngClass]="{
positive: element.status == 'Active',
negative: element.status == 'In Active'
}"
>{{ element.status }}</mat-cell
>
</ng-container>
<!-- View Button -->
<ng-container matColumnDef="actions">
<mat-header-cell *matHeaderCellDef> Actions </mat-header-cell>
<mat-cell *matCellDef="let element; let index = index">
<smd-fab-speed-dial [open]="open" [direction]="direction" [animationMode]="animationMode" [fixed]="fixed">
<smd-fab-trigger [spin]="true">
<button color="black" matTooltip="More job actions ..." class="view-data" mat-fab (click)="moreActionToggle()">
<i class="material-icons">more_horiz</i>
</button>
</smd-fab-trigger>
<smd-fab-actions>
<button mat-mini-fab color="#b71c1c" matTooltip="View" (click)="transferIndCustData(element)">
<i class="material-icons large" style="font-size: 28px">
pageview
</i>
</button>
<button mat-mini-fab color="#b71c1c" matTooltip="Delete" (click)="deleteCustomer(element)">
<i class="material-icons large" style="font-size: 28px">
delete
</i>
</button>
</smd-fab-actions>
</smd-fab-speed-dial>
</mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns; let i = index"></mat-row>
</mat-table>
Я делаю мягкое удаление, что означает, что моя запись фактически не удалена, но в столбце состояния отображается «Неактивно» вместо «Активно».Первоначально, если у меня есть 10 строк клиентов, и все они активны, а теперь, если я удаляю клиентов из первой строки, у меня останется 10 строк, единственное, что изменится, так это то, что столбец статуса первой строки будет изменен на In Active.