Вашим updateFilter()
методам нужны значения всех входов фильтра, а не только того, который передан через $event
.
Одним из способов может быть создание объекта filters
в вашем компоненте и двусторонняя привязка его свойств к поисковым входам в заголовках столбцов. Прослушайте событие ngModelChange
и запустите фактическую фильтрацию.
class MyComp {
// Other stuff
filters = {};
filter = () => {
// Do the filtering, all filters are set in this.filter object
}
}
В вашем HTML-шаблоне свяжите его и прослушайте событие ngModelChange, чтобы инициировать фильтрацию при каждом изменении значения (лучше, чем при использовании keyUp
, поскольку оно также срабатывает, когда содержимое изменяется без нажатия клавиши, например, копирование с помощью контекстное меню).
<input id="order_id" [(ngModel)]="filters.order_id" (ngModelChange)="filter()" ... />