1. ホーム
  2. angularjs

[解決済み】複数の引数でAngular.jsのフィルタを呼び出すには?

2022-03-28 05:47:18

質問

からのように ドキュメント のようなフィルタを呼び出すことができます。 日付 このように

{{ myDateInScope | date: 'yyyy-MM-dd' }}

ここでdateは引数を1つ取るフィルタです。

テンプレートとJavaScriptコードの両方から、より多くのパラメータを持つフィルタを呼び出すための構文とは何でしょうか?

どのように解決するのですか?

テンプレートでは、フィルタの引数を コロン .

{{ yourExpression | yourFilter: arg1:arg2:... }}

Javascript からは、次のように呼び出します。

$filter('yourFilter')(yourExpression, arg1, arg2, ...)

には、実は例が隠されています。 オーダーバイ フィルタのドキュメントを参照してください。


例えば、正規表現で置き換えることができるフィルターを作るとしよう。

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>