В Angular вы позволяете модели диктовать, какой должна быть HTML, вместо того, чтобы пытаться удалять элементы из DOM вручную.
В настоящее время вы строите свою сетку из своей модели - ХОРОШО
Вы пытаетесь удалить элементы из вашей сетки напрямую через DOM - BAD
Вместо этого вам нужно указать, какой элемент следует удалить при вызове функции удаления. Я собираюсь передать исходный элемент в функцию удаления, чтобы вы могли найти его массив и удалить его из массива. При изменении массива Angular перестроит компонент HTML.
. html
<mat-grid-tile *ngFor="let item of items">
<h2>Title {{item.name}}</h2>
<button (click)="delete(item)">Delete</button>
</mat-grid-tile>
component.ts
delete(item) {
const index = this.items.indexOf(item);
this.items.splice(index, 1);
}
DEMO: https://stackblitz.com/edit/angular-material-grid-znlou6