2017-06-07 4 views
0

テキストボックスと配列を作成します。私は、テキストボックス値に従って配列項目をフィルタリングしたい。 angular2で配列検索フィルターを作成するには?

<div class="searchboxt"> <input type="text" placeholder="Search Tickets" 
 
class="searchboxttext" [(ngModel)]="searchfav"/> </div> 
 
<li class="selectlistticket" *ngFor="let fav of (favlist.slice().reverse() 
 
| SearchfilterPipe: searchfav)" (mouseover)="showfavstar(fav)" (mouseleave) 
 
="hidefavstar(fav)">

どのように私はangular2の配列をフィルタリングするのですか?

+0

https://stackoverflow.com/questions/34417250/filtering-an-array-in-angular2この缶はあなたを助けます。 –

+0

https://stackoverflow.com/questions/37003551/how-do-i-filter-an-array-with-typescript-in-angular-2これはあなたに役立つでしょうか確認してください – Jackson

+0

私は私のようなコードが必要ですテキストボックスには何も入力せず、配列リストには関連する行のみを表示する必要があります。角度で実装するのは非常に簡単です – Arvind

答えて

1

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

 
@Pipe({ 
 
    name: 'searchfilter', 
 
    pure: false 
 
}) 
 
export class SearchfilterPipe implements PipeTransform { 
 

 
    transform(items: any, term: any): any { 
 
    if (term === undefined) return items; 
 

 
    return items.filter(function(item) { 
 
     for(let property in item){ 
 
     if (item[property] === null){ 
 
      continue; 
 
     } 
 
     if(item[property].toString().toLowerCase().includes(term.toLowerCase())){ 
 
      return true; 
 
     } 
 
     } 
 
     return false; 
 
    }); 
 
    } 
 
}

私は期待のようにこれは100%の罰金を動作します。これをパイプとして保存し、これをappmoduleとコンポーネントの両方にインポートします。


 
    <div class="searchboxt"> <input type="text" placeholder="Search Tickets" class="searchboxttext" [(ngModel)]="searchfav"/> </div> 
 

 
    <li class="selectlistticket" *ngFor="let fav of favlist.slice().reverse() | searchfilter :searchfav" (mouseover)="showfavstar(fav)" (mouseleave)="hidefavstar(fav)">