你好我正在使用ionic 2( version released 2.0)
和angular 2( version core 2.2.1)
试图制作一个数组管道过滤器,但它始终显示错误
无法阅读财产'过滤'未定义的
import { Pipe ,PipeTransform } from '@angular/core';
@Pipe({ name: 'fetch', pure: false })
export class Search implements PipeTransform {
transform(items:Array, conditions:{[field:string]:any}):Array {
return items.filter(item => { for (let field in conditions) {
if (item[field] !== conditions[field]) {
return false;
}
}
return true;
});
}
}
HTML
`<ion-content>
<ion-searchbar [(ngModel)]="term" [showCancelButton]="true"></ion-searchbar>
<ion-grid class="category">
<ion-row text-center wrap>
<ion-col width-33 *ngFor="let d of total|fetch:term">
<p> {{d.name}} </p>
</ion-col>
</ion-row>
</ion-grid>
</ion-content>`
JSON responce code in total array [{id:1 ,name:"abc" },{id:2 ,name:"xyz" }]
&#13;
答案 0 :(得分:0)
尝试猜测,因为您的代码尚未完成。
您是否使用http请求获取数据?因为在这种情况下,您必须首先以这种方式检查项目:
if (items==null) {
return null;
}
完整的代码:
transform(items: Array<any>, conditions: {[field: string]: any}): Array<any> {
if (items==null) {
return null;
}
return items.filter(item => {
for (let field in conditions) {
if (item[field] !== conditions[field]) {
return false;
}
}
return true;
});
}
然后在html部分,如果你试图过滤{{d.name}},根据你的管道,我认为你必须写这样的东西:
*ngFor="let d of total|fetch:{name:term}"
希望这个帮助