Я пытаюсь сделать фильтр в angular2, я сделал множество продуктов, как это:angular2 проблема фильтрации
private products = ["Apple", "Banana", "Orange"];
и вот мой фильтр трубы:
import {Pipe} from 'angular2/core';
@Pipe({name:'filter'})
export class FilterPipe {
transform(value, args) {
if(!args[0]){
return value;
}
else if (value) {
return value.filter(item => {
for (let key in item){
if((typeof item[key]==='string' || item[key] instanceof String) && (item[key].indexOf(args[0]) !== -1)){
return true;
}
}
});
}
}
}
В моей компонент Я добавил элемент ul
для отображения продуктов и элемент input
для их фильтрации:
<input type="text" [(ngModel)]="filterText">
<ul>
<li *ngFor="#product of products | filter: filterText">
{{product}}
</li>
</ul>
Проблема при запуске этого кода заключается в том, что он работает только (фильтр) при вводе первой буквы, еще раз вводятся буквы, которые не будут работать. Любая помощь ?
Теперь я вижу проблему, спасибо много, и с моим кодом фильтра я изменил массив для объекта, и он работает –