2017-05-30 5 views
0

ユーザーの検索クエリの入力をフィルタリングしようとしています。検索する特定の名前を入力すると、そのものだけが返されます。検索とフィルタリングのための省略コード

私はAngular2デモアプリケーション(http://mazzoangular2.azurewebsites.net/)を持っています。私は、単にアーティストの作品を検索する検索結果を返します。今すぐ入力された最初の文字を含むすべての絵を戻しています。あなただけpipeModiferの最初の文字と評価している、あなたのコードで

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

@Pipe({ 
    name: 'find' 
}) 

export class SearchPipe { 

    transform(pipeData, pipeModifier) { 
    return pipeData.filter((eachItem) => { 
     return 
eachItem['name'].toLowerCase().includes(pipeModifier.toLowerCase()) || 

eachItem['shortname'].toLowerCase().includes(pipeModifier.toLowerCase()); 
    }); 
    } 
}//End class SearchPipe 

SearchPipe.prototype.transform = function (pipeData, _a) { 
    var pipeModifier = _a[0]; 
    return pipeData.filter(function (eachItem) { 
    return 
eachItem['name'].toLowerCase().includes(pipeModifier.toLowerCase()) || 
eachItem['shortname'].toLowerCase().includes(pipeModifier.toLowerCase()); 
    }); 
} 
+0

あなたのコードに何が問題なのですか? – toskv

+0

あなたはhttp://mazzoangular2.azurewebsites.netで遊ぶためにこのリンクに行くことができますが、問題は検索ロジックが直接入力された特定の名前にドリルダウンしていないようです。検索入力フィールドに提案された名前を入力する場合など。 –

答えて

0
 SearchPipe.prototype.transform = function(pipeData, _a) { 
      var pipeModifier = _a[0]; 
      return pipeData.filter(function(eachItem) { 
       return eachItem['name'].toLowerCase().includes(pipeModifier.toLowerCase()) || eachItem['shortname'].toLowerCase().includes(pipeModifier.toLowerCase()); 
      }); 
     } 

:ここ

はtypescriptです検索コードです。フィルタロジックが機能しています。「吹き出し」で検索すると、「b」を使用して残りの検索を破棄するだけです。

これは、変換関数の宣言でpipeModifierを配列の最初の要素として渡すために起こります。 typescriptでは、これはpipeModifierの2番目の引数が配列であり、pipeModifierをその配列の最初の要素にしたいとしていることを意味します。

活字体機能

JavaScript関数を結果の

function test(var1, [var2, var3]){ 
    console.log(var2); 
} 

:あなただけの活字体はJavascriptにこれを変換する方法の

transform(pipeData, [pipeModifier]) 

transform(pipeData, pipeModifier) 

に例を変更することで、この問題を解決することができます
function test(var1, _a) { 
    var var2 = _a[0], var3 = _a[1]; 
    console.log(var2); 
} 

配列の大きさにかかわらず、最初の2つの要素だけが使用されます。

+0

Peterに感謝します。だから私はその変換関数を自分のコードに追加して検索結果を修正していますか?その関数をエクスポートクラス宣言の上に置くことはできますか?ありがとうございました... –

+0

元の投稿に説明が追加されました –

+0

Peter元の投稿を更新して、あなたが提案したコードの変更を反映しました。このリンクをクリックするとmazzoangular2.azurewebsites.netで遊ぶことができますが、検索機能は直接入力した場合は特定の名前にドリルダウンしていないようです。たとえば、アプリの検索入力フィールドに提案された名前を入力するとします。 –

関連する問題