回答:
テンプレートでは、フィルター引数をコロンで区切ることができます。
{{ yourExpression | yourFilter: arg1:arg2:... }}
JavaScriptから、次のように呼び出します
$filter('yourFilter')(yourExpression, arg1, arg2, ...)
実際には、orderByフィルターのドキュメントに隠された例があります。
例:
正規表現で置き換えることができるフィルターを作成するとします。
myApp.filter("regexReplace", function() { // register new filter
return function(input, searchRegex, replaceRegex) { // filter arguments
return input.replace(RegExp(searchRegex), replaceRegex); // implementation
};
});
すべての桁を検閲するためのテンプレートの呼び出し:
<p>{{ myText | regexReplace: '[0-9]':'X' }}</p>
私はカスタムフィルターについても言及している以下で言及しました、2つのパラメーターを持つこれらのフィルターを呼び出す方法
countryApp.filter('reverse', function() {
return function(input, uppercase) {
var out = '';
for (var i = 0; i < input.length; i++) {
out = input.charAt(i) + out;
}
if (uppercase) {
out = out.toUpperCase();
}
return out;
}
});
テンプレートを使用してhtmlから以下のようにそのフィルターを呼び出すことができます
<h1>{{inputString| reverse:true }}</h1>
ここに表示される場合、最初のパラメーターはinputStringで、2番目のパラメーターはtrueであり、:記号を使用して「reverse」と組み合わせられます。
ng-options内でフィルターを呼び出す場合、コードは次のようになります。
ng-options="productSize as ( productSize | sizeWithPrice: product ) for productSize in productSizes track by productSize.id"
フィルターはsizeWithPriceFilterであり、2つのパラメーターproductおよびproductSizeがあります。
フィルターとの取引が2つ以上必要な場合は、それらをチェーンすることができます。
{{ value | decimalRound: 2 | currencySimbol: 'U$' }}
// 11.1111 becomes U$ 11.11