2017-02-02 29 views
4

のプロパティ 'フィルタ' を読み取ることができません私のテンプレートは以下のように、見えは未定義

テンプレート:

<input #input placeholder="Search" id="search"> 
    <div class="item" *ngFor="let item of data | searchPipe: input.value"> 
     {{item}} 
    </div> 

と私はここでの問題何SearchPipe

@Pipe({ 
    name: 'searchPipe', 
    pure: false 
}) 
export class SearchPipe implements PipeTransform { 
    transform(data: any[], searchTerm: string): any[] { 
     searchTerm = searchTerm.toUpperCase(); 
     return data.filter(item => { 
     return item.toUpperCase().indexOf(searchTerm) !== -1 
     }); 
    } 
} 

ためのコンポーネントがありますか?

export class SearchPipe implements PipeTransform { 
    transform(data: any[], searchTerm: string): any[] { 
    if(!data) return []; 
    searchTerm = searchTerm.toUpperCase(); 
    return data.filter(item => { 
     return item.toUpperCase().indexOf(searchTerm) !== -1 
    }); 
    } 
} 
+0

私も同じ問題に直面しています。これを解決しましたか? – stackUser44

+0

@ stackUser44はい私はそれを解決しました – Sajeetharan

+0

あなたのソリューションで私を助けてください – stackUser44

答えて

4

着信データがnullだったとフィルター方法は、エラーの原因となったデータを、期待していた:

1

これを試してみてください。

transform(items: any[], filterQuery: any): any[] { 
     if (!filterQuery) return items; 
     return items.filter(function(item){ 
      return item.whateverProperty.toLowerCase().includes(filterQuery.toLowerCase()); 
     }) 
    }