меня эту трубу для поискапоиск по ключу вверх вместо удара ввести
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'searchPipe',
pure: false
})
export class SearchPipe implements PipeTransform {
transform(data: any[], search: string): any[] {
if (data == null){
return null;
}
search = search.toUpperCase();
return data.filter(x => {
return (x.firstName.toUpperCase().indexOf(search) !== -1)
...
});
}
}
и component.html У меня есть
<input #input type="text" placeholder="Search" id="search">
<ul class="list-group">
<li *ngFor="let dt of data | searchPipe: input.value" class="list-group-item">
<div class="col-sm-3 col-xs-12 clearfix">
<span>{{ dt.firstName }} {{ dt.lastName }}</span>
</div>
<div class="clearfix"></div>
</li>
</ul>
Поиск работы в порядке, но только тогда, когда я нажимаю на войти или backspace, но вместо этого я хочу искать на каждом нажатии клавиши (для a, b и т. д.)
Как это сделать?
Связать поле ввода с свойством в вашем компоненте с помощью [NgModel] и использовать его как фильтр вместо input.value –