2017-05-17 13 views
0

私はAUIDとファーストネームの両方をフィルタリングする必要があるパイプを作成しますが、どうにかしてファーストネームだけを処理します。いずれにせよ私は理由を理解するのに役立つでしょうか?ここ角2のパイプルール

はコードです:

 return value.filter((searchresult:ISearch)=> 
     (filterBy2?searchresult.AU_ID.indexOf(filterBy2)!==-1:true)&& 
     (filterBy?searchresult.first_name.toLocaleLowerCase().indexOf(filterBy)!==-1:true) 
+1

はあなたが単純化できこれを[mcve]に?これはかなり混乱しているようで、あなたは入力と期待/実際の出力を提供していません。 – jonrsharpe

+0

これは私が書いたパイプ変換のためのすべてのコードです。質問は他のものではなく、復帰部分だけです。私がこのように書いた場合、それらの両方が機能しますか? –

+0

...何ですか? *「これはすべてのコードです」*は問題の一部ですが、自分でデバッグを行ったことがありますか? – jonrsharpe

答えて

0

私はあなたが提供する同じコードを使用していました。私のために働いています。 AU_IDがnumberではなくパラメータとして渡される文字列であることを確認できますか?その場合、indexOfは機能しません。 HTMLファイルに

transform(value: Array<any>, filterBy: string, filterBy2: string): Array<any> { 
    filterBy = filterBy ? filterBy.toLocaleLowerCase() : null; 
    filterBy2 = filterBy2 ? filterBy2 : null; 
    return value.filter((searchresult: Array<any>) => 
     (filterBy2 ? searchresult['AU_ID'].indexOf(filterBy2) !== -1 : true) && 
     (filterBy ? searchresult['first_name'].toLocaleLowerCase().indexOf(filterBy) !== -1 : true) 
    ); 
    } 

、私は以下のコードを使用:以下のように

<div *ngFor="let dummy of dummyData | screeningSearch: 'A' : '1'">hi {{dummy.first_name}}</div> 

を保持データを:

dummyData = [ 
    { 
     'AU_ID': '1234', 
     'first_name': 'Albert' 
    }, 
    { 
     'AU_ID': '5678', 
     'first_name': 'Andi' 
    } 
    ]; 

結果:

hi Albert

+0

ありがとう、私は問題を解決した –