Мой фильтр поиска не работает, так как у меня есть одно поле ввода для поиска, в котором я хочу выполнить поиск по номеру сотрудника или имени сотрудника
Код фильтра моего поиска (канал)
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'searchEmployee'
})
export class SearchEmployeePipe implements PipeTransform {
transform(items: any, filter: any, isAnd: boolean): any {
if (filter && Array.isArray(items)) {
let filterKeys = Object.keys(filter);
if (isAnd) {
return items.filter(item =>
filterKeys.reduce((memo, keyName) =>
(memo && new RegExp(filter[keyName], 'gi').test(item[keyName])) || filter[keyName] === "", true));
} else {
return items.filter(item => {
return filterKeys.some((keyName) => {
console.log(new RegExp(filter[keyName], 'gi').test(item[keyName]) || filter[keyName])
return new RegExp(filter[keyName], 'gi').test(item[keyName]) || filter[keyName] === "";
});
});
}
} else {
return items;
}
};
}
Мой HTML-код
<div class="search-employee-input-div">
<input type="text" placeholder="Search Employee" class="employee-list-searchbox" [(ngModel)]="employeeSearchQuery" [ngModelOptions]="{standalone: true}" />
</div>
<li formArrayName="Employees" *ngFor="let emp of payrollProcessingList.Employees | searchEmployee: { EmployeeID: employeeSearchQuery, FullName: employeeSearchQuery }: false; let i = index;" class="emp-li-loop"></li>