2017-04-11 41 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還沒有從服務器獲取檢索列表,因此它失敗了(還有impure管道在每個tick上被調用)。

所以你應該在你自己的過濾器中處理這種情況。

@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

感謝pankaj,它現在工作的很好。 – Abhijeet