2016-06-26 13 views
0

私はいくつかのプロジェクトに取り組んでいます。私の検索パイプには正しい答えが見つかりません。これは私のコードです:Angular2の検索パイプ

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

@Pipe({ 
    name: 'SearchPipe' 
}) 

export class SearchPipe { 


transform (value, [queryString]) { 
    if (value==null) { 
     return null; 
    } 
    if (value=="") { 
     return null; 
    } 

    if(queryString !== undefined){ 
     return value.filter(item=>item.model.toLowerCase().indexOf(queryString.toLowerCase()) !== -1)   ; 
    }else{ 
     return value; 
    } 
    } 
} 

と私は検索でいることを入力すると、文字Aが含まれているすべての検索結果を取得します。手紙ではなく言葉で私のjsonを検索する必要があります。私の悪い言葉で申し訳ありません、あなたがそれを理解することを願っています。これがJSONです。

[ 
    { 

    "brand": "Suzuki", 
    "condition": "polovno", 
    "salesman": "Automotive", 
    "model": "Vitara" 
    } 
] 

誰かがコードを変更できる場合、私は非常に満足しています。 ありがとうございます!あなたが持っているが、それは

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

@Pipe({ 
    name: 'SearchPipe' 
}) 

export class SearchPipe implements PipeTransform{ 


transform (value, [queryString]) { 
    if (value==null || value=="") { 
     return null; 
    } 

    if(queryString !== undefined){ 
     return value.filter(item=>item.model.toLowerCase().indexOf(queryString.toLowerCase()) !== -1)   ; 
    }else{ 
     return value; 
    } 
    } 
} 

答えて

0

わかりません。パラメータ化されたパイプ(例:SearchPipe:queryStringなど)を使用して渡すことができます。

ここにはplunkerの例があります。

1

を中華鍋場合は、queryStringパラメータの周りにブラケットを必要としない、これを試してフィルタロジックについて

1

回答HEREに基づいてプランナーを作成しました。

はさらに私はそれの観測可能に@Input@ViewChild、および<input>作成およびsubscribe()ElementRefを追加する必要がありました。

Angular2検索フィルター:PLUNKR

関連する問題