Issue
I try to filter the columns in primeNG table, but it doesn’t work. When I input some text, all the data disappears from table.
<p-table #table [value]="datas">
<ng-template pTemplate="header">
<tr>
<th>
ID
</th>
<th [pSortableColumn]="name">
<span>Name
<p-sortIcon [field]="name"></p-sortIcon>
</span>
<input class="column-filter-input" (click)="$event.stopPropagation()" pInputText type="text" (input)="table.filter($event.target.value, name, 'contains')" [value]="table.filters['name']?.value" />
</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-data>
<tr>
<td>{{data.id}}</td>
<td>{{data.name}}</td>
</tr>
</ng-template>
</p-table>
Solution
Field name should be string so it should be table.filter($event.target.value, 'name', 'contains')
instead of table.filter($event.target.value, name, 'contains')
like
<input class="column-filter-input" (click)="$event.stopPropagation()" pInputText type="text" (input)="table.filter($event.target.value, 'name', 'contains')" [value]="table.filters['name']?.value" />