2
我试图在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>
运行此代码时的问题是,它只能在输入第一个字母时起作用(过滤),再输入一个字母就不会起作用。任何帮助?
现在我看到这个问题,非常感谢,也与我的过滤代码,我改变了数组来对象和它的作品 –