2017-02-09 72 views
0

你好,我是用ionic 2(version released 2.0)angular 2(version core 2.2.1)試圖使一個陣列管道過濾器,但它始終顯示錯誤 無法讀取的不確定對管道過濾器的離子2錯誤(TypeError:無法讀取屬性未定義「過濾器」)

財產「過濾器」
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" }]

+1

的代碼添加到questio n ..不發表評論.. –

+0

我正在創建一個數組搜索過濾器,它顯示這個錯誤任何方式hows我可以使數組搜索過濾器在離子2 –

+0

你可以添加html端? –

回答

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}" 

希望這有助於

+0

錯誤已經消失,但搜索結果不工作.. JSON響應總數組中的代碼[{id:1,名稱:「abc」},{id:2,name:「xyz」}] –

相關問題