2016-08-29 8 views
1

は、ここで私は、フィルタを使用しています方法は次のとおりです。以下Angular2フィルタの問題

<ion-item *ngFor="let contact of contacts | isMember"> 
      <ion-label>{{contact.name}}</ion-label> 

      {{contact.phoneNumber}}-{{contact.isMember}} 
     </ion-item> 

フィルタ定義:

import { Pipe, PipeTransform } from '@angular/core'; 
@Pipe({name: 'isMember'}) 
export class IsMemberPipe implements PipeTransform { 
    transform(value: any): any { 

     if (value.isMember === true) { 
      return value; 
     } 
     return undefined; 

    } 
} 

目標は内容isMemberフラグがtrueに設定されているのみ表示行にあります。

TypeError: Cannot read property 'isMember' of undefined 

はここplnkrです:

http://plnkr.co/edit/fLdNAoMGLU8vkGOFmrV8?p=preview

答えて

1

だけnullが値として渡されたとき、あなたのパイプが爆発していないことを確認してください。また、一度にすべての値を返します。パイプは各値で呼び出されることはなく、すべての連絡先を一度に呼び出すことができます。

@Pipe({name: 'isMember'}) 
export class IsMemberPipe implements PipeTransform { 
    transform(value: any, crit:boolean): any { 
     console.log('x'); 
     console.log('log', value, crit); 
     if (value) { 
      return value.filter(v => v.isMember === crit) { 
     } 

     return []; 
    } 
} 
+0

エラーが持続します。 plsはplnkrを指します – runtimeZero

+0

http://plnkr.co/edit/o4qzuLxbGzr3lkKRn51W?p=preview –