Improve this Doc View Source $filterProvider

  1. $filter
  2. provider in module ng

Overview

Filters are just functions which transform input to an output. However filters need to be Dependency Injected. To achieve this a filter definition consists of a factory function which is annotated with dependencies and is responsible for creating a filter function.

Note: Filter names must be valid AngularJS Expressions identifiers, such as uppercase or orderBy. Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace your filters, then you can use capitalization (myappSubsectionFilterx) or underscores (myapp_subsection_filterx).
// Filter registration
function MyModule($provide, $filterProvider) {
  // create a service to demonstrate injection (not always needed)
  $provide.value('greet', function(name){
    return 'Hello ' + name + '!';
  });

  // register a filter factory which uses the
  // greet service to demonstrate DI.
  $filterProvider.register('greet', function(greet){
    // return the filter function which uses the greet service
    // to generate salutation
    return function(text) {
      // filters need to be forgiving so check input validity
      return text && greet(text) || text;
    };
  });
}

The filter function is registered with the $injector under the filter name suffix with Filter.

it('should be the same instance', inject(
  function($filterProvider) {
    $filterProvider.register('reverse', function(){
      return ...;
    });
  },
  function($filter, reverseFilter) {
    expect($filter('reverse')).toBe(reverseFilter);
  });

For more information about how AngularJS filters work, and how to create your own filters, see Filters in the AngularJS Developer Guide.

Methods

  • register(name, factory);

    Parameters

    Param Type Details
    name stringObject

    Name of the filter function, or an object map of filters where the keys are the filter names and the values are the filter factories.

    Note: Filter names must be valid AngularJS Expressions identifiers, such as uppercase or orderBy. Names with special characters, such as hyphens and dots, are not allowed. If you wish to namespace your filters, then you can use capitalization (myappSubsectionFilterx) or underscores (myapp_subsection_filterx).
    factory Function

    If the first argument was a string, a factory function for the filter to be registered.

    Returns

    Object

    Registered filter instance, or if a map of filters was provided then a map of the registered filter instances.

© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.6.9/docs/api/ng/provider/$filterProvider