2017-04-11 9 views
0

データを* ngForから取り出して何らかの操作を行う非常に単純なパイプを実装しようとしていますが、data.filter() "undfinedのプロパティフィルタを読み込むことができません"角2のパイプデータが変換メソッドに渡されていません

ここに私のパイプは

import { Pipe, PipeTransform } from '@angular/core'; 

@Pipe({ name: 'tripFilterByStartDate',pure: false }) 
export class tripFilterByStartDateModule implements PipeTransform { 
transform(values: any, args: any[] = null) { 
    console.log(values);// 
    return values.filter(value => value.someValue);// throwing an error "cannot read property filter of undefined" 
    } 
} 

と、ここで私のhtmlページが

<ion-card *ngFor="let tripData of tripList | tripFilterByStartDate" text-wrap> 

</ion-card> 
です

任意の提案は大きな助けになるでしょう

答えて

0

cannot read property filter of undefinedエラーが明確にvaluesオブジェクトが存在していないと述べている(未定義)あなたのパイプが初期の変更検出に呼ばれましたとき。パイプfilterからvalues変数に適用されました。 tripListはサーバから検索されたリストを取得していないので、失敗しました(またtickimpureパイプが呼び出されます)。

この状況をフィルタ自体で処理する必要があります。

@Pipe({ name: 'tripFilterByStartDate',pure: false }) 
export class tripFilterByStartDateModule implements PipeTransform { 
transform(values: any, args: any[] = null) { 
    if(!values) return []; //added this line 
    return values.filter(value => value.someValue);// throwing an error "cannot read property filter of undefined" 
    } 
} 
+0

ありがとうございました。 – Abhijeet

関連する問題