У меня есть мат-таблица с источником данных, модели которого выглядят так:
.ts
interface DataModel {
id: number;
projectName: string;
material: material;
}
interface material {
materialID: number;
materialName: string;
}
.html
<mat-form-field>
<mat-label>Filter</mat-label>
<input matInput (keyup)="applyFilter($event)" placeholder="" #input>
</mat-form-field>
<div class="mat-elevation-z8">
<table mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="projectName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> projectName</th>
<td mat-cell *matCellDef="let row"> {{row.projectName}} </td>
</ng-container>
<ng-container matColumnDef="material">
<th mat-header-cell *matHeaderCellDef mat-sort-header> material </th>
<td mat-cell *matCellDef="let row"> {{row.material ? row.material.materialName : '' }} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
<tr class="mat-row" *matNoDataRow>
<td class="mat-cell" colspan="4">No data matching the filter "{{input.value}}"</td>
</tr>
</table>
- Фильтрация из таблицы мата не работает для ячейки материала.
- Последняя строка tr, которая должна отображать сообщение, если совпадения нет, не работает.
Спасибо за помощь.
Изменить .: Angular ver .: 8.0 Пример: https://stackblitz.com/edit/angular-cxmmdz?file=src/app/table-filtering-example.ts - фильтрация не работает для {{row.color.name}}
filterPredicate
метод и написать свою логику для фильтрации данных. Отметьте эту [ссылку] (stackoverflow.com/questions/51515695/) - person Amit Vishwakarma   schedule 07.08.2020