1. ホーム
  2. angularjs

[解決済み] コントローラでフィルタを使用するには?

2022-03-15 17:05:47

質問

渡された引数に基づいてデータを返すフィルタ関数を書きました。コントローラにも同じ機能を持たせたいと思っています。コントローラ内でフィルタ関数を再利用することは可能でしょうか?

これまで試したのは、こんな感じです。

function myCtrl($scope,filter1)
{ 
    // i simply used the filter function name, it is not working.
}

解決方法は?

インジェクション フィルター をコントローラに追加します。

function myCtrl($scope, $filter)
{
}

そして、そのフィルタを使いたい場所で、次のように使用します。

$filter('filtername');

そのフィルタに引数を渡す場合は、別の括弧を使用してください。

function myCtrl($scope, $filter)
{
    $filter('filtername')(arg1,arg2);
}

ここで arg1 はフィルタリングしたい配列で arg2 はフィルタリングに使用するオブジェクトです。