Make sure you import ViewChild and MatTable:
import {Component, ViewChild} from '@angular/core';
import {MatTable} from '@angular/material';
Then you can get a reference to the table using the ViewChild (note that a type T is required on MatTable – I just used any, but if you have a typed table, you will need to use that type:
@ViewChild(MatTable) table: MatTable<any>;
Then when you modify the table in any way you will need to call the renderRows() method.
delete(row: any): void {
/* delete logic here */
this.table.renderRows();
}
Here is a very simple working example:
https://stackblitz.com/edit/angular-bxrahf
Some sources I found when solving this issue myself:
- https://material.angular.io/cdk/table/api#CdkTable
- https://stackoverflow.com/a/49121032/8508548