2016-10-20 12 views
1

私はこのような私のコントローラでのフィルタがあります。それはENT角度フィルタあいまい検索

の価値を持っている場合、私は FileAppCDと呼ばれるプロパティに基づいて legEncoderQueueと呼ばれる配列の結果を集計しています

$scope.LegEntQueue = $filter('filter')(legEncoderQueue, {FileAppCD: 'ENT'}).length; 

これは完璧に動作しますが、それをあいまい検索を持ち、かつ、価値のENTを持っているものを選択する方法はありますか?例えば、ENT-M-AndおよびENT-M-iOS

+0

あなたは可能性が'独自のコードの条件とされたコレクションの.filter'(正規表現)、プレーンJavaScriptに... –

答えて

0

ありがとうございましたあなたのご意見をいただきありがとうございます。わたしは無知を実現するために瞬間を要しました。

$scope.regexCount = function(array, feild, pattern) { 
    var count = 0; 
    for (index = 0; index < array.length; index++) { 
     if (pattern.test(array[index][feild])) { 
      count ++; 
     } 
    } 
    return count; 
}; 

そして、私のパラメータを渡す:

私の解決策は、関数を作成することでした。 :私は右が、私は `{FileAppCDですべてのオブジェクトを選択したいという言葉はなかった

$scope.LegEntQueue = $scope.regexCount(legEncoderQueue, 'FileAppCD', /ENT.*/);

2

あなたのコレクション内のすべてのあなたの特性の部分文字列検索を実行しますプロパティ$があります。試合を受け入れるために:({ "テキスト" $}などのように)あなたのケースでは、あなたは特別なプロパティ名(デフォルトでは$)を使用することができます

$scope.LegEntQueue = $filter('filter')(legEncoderQueue, {$: 'ENT'}) 

From the angular docs

を使用することができますオブジェクトの任意のプロパティまたはそのネストされたオブジェクトのプロパティに対して実行されます。

+0

は申し訳ありません'ENT-M-And'} 'や' {FileAppCD: 'ENT-M-iOS'} 'などのように、 ENTで始まる15種類のFileAppCD値があり、15種類のフィルタ文を書く代わりに、すべてを一度に選択したいと思います。 – Greyhammer

+0

@Greyhammerフィルター機能を指定し、より多くの制御が必要な場合は、正規表現やカスタムロジックを使用することをお勧めします。 –