2017-02-09 7 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

私は配列検索フィルタを作成しています。このエラーはどのように表示されますか?私はイオン検索で配列検索フィルタを作ることができます。 –

+0

html側を追加できますか? –

答えて

0

コードが完成していないため推測しようとしています。

データを取得するためにhttpリクエストを使用していますか?その場合にはこの方法で最初の項目をチェックする必要があるので:

if (items==null) { 
     return null; 
    } 

完全なコード:HTML部分で、その後

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; 
    }); 
} 

、あなたはフィルタリングしようとしている場合は、{{d.name} }、あなたのパイプによると、私はあなたがこのような何かを書かなければならないと思う:

*ngFor="let d of total|fetch:{name:term}" 

・ホープ、このヘルプ

+0

エラーが終了しましたが、検索結果が機能していません。JSONレスポンスコードの配列全体が{{id:1、名前: "abc"}、{id:2、名前: "xyz"}] –

関連する問題