2016-08-30 4 views
0

コントローラーの内容に2つのフィルターを適用する必要があります。最初のフィルタは小文字になり、他のフィルタはカスタムフィルタになります。

私は次のようにそれを使用しようとしました:

$filter('lowercase','cardShortNameRegex')(currentProductObject.shortName); 

のみ小文字のフィルタは、他のものではありません適用されます。

もし解決策や提案があれば、助けてください。

答えて

1

ちょうどそれを次々に呼び出します。

var lowerCasedName = $filter('lowercase')(currentProductObject.shortName); 
var result = $filter('cardShortNameRegex')(lowerCasedName); 

また、このように、独自の機能の何かを定義することができます。複数のフィルタ名を受け入れ、それらを適用し

var result = multipleFilters('lowercase', 'cardShortNameRegex')(currentProductObject.shortName); 

function multipleFilters() { 
    var filters = arguments; 
    return function (input) { 
    angular.forEach(filters, function (filterName) { 
     input = $filter(filterName)(input); 
    }); 
    return input; 
    } 
} 

を。

+0

他の方法はありますか?私は別の条件のためにそれを多くの場所を行う必要があるため、それのために良いだろう任意の単一のラインのソリューションがある場合。 – Toretto

+0

@Toretto別の解決策で自分の答えを更新しました –

関連する問題