angularjsangular-filtersng-controller

How to use a filter in a controller?


I have written a filter function which will return data based on the argument you are passing. I want the same functionality in my controller. Is it possible to reuse the filter function in a controller?

This is what I've tried so far:

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

Solution

  • Inject $filter to your controller

    function myCtrl($scope, $filter)
    {
    }
    

    Then wherever you want to use that filter, just use it like this:

    $filter('filtername');
    

    If you want to pass arguments to that filter, do it using separate parentheses:

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

    Where arg1 is the array you want to filter on and arg2 is the object used to filter.