# Service components in `ng`

Name | Description
--- | ---
$anchorScroll | When called, it scrolls to the element related to the specified `hash` or (if omitted) to the current value of $location.hash(), according to the rules specified in the HTML5 spec.
$animate | The $animate service exposes a series of DOM utility methods that provide support for animation hooks. The default behavior is the application of DOM operations, however, when an animation is detected (and animations are enabled), $animate will do the heavy lifting to ensure that animation runs with the triggered DOM operation.
$animateCss | This is the core version of `$animateCss`. By default, only when the `ngAnimate` is included, then the `$animateCss` service will actually perform animations.
$cacheFactory | Factory that constructs Cache objects and gives access to them.
$templateCache | `$templateCache` is a Cache object created by the $cacheFactory.
$compile | Compiles an HTML string or DOM into a template and produces a template function, which can then be used to link `scope` and the template together.
$controller | `$controller` service is responsible for instantiating controllers.
$document | A jQuery or jqLite wrapper for the browser's `window.document` object.
$exceptionHandler | Any uncaught exception in AngularJS expressions is delegated to this service. The default implementation simply delegates to `$log.error` which logs it into the browser console.
$filter | Filters are used for formatting data displayed to the user.
$httpParamSerializer | Default `$http` params serializer that converts objects to strings according to the following rules:
$httpParamSerializerJQLike | Alternative `$http` params serializer that follows jQuery's `param()` method logic. The serializer will also sort the params alphabetically.
$http | The `$http` service is a core AngularJS service that facilitates communication with the remote HTTP servers via the browser's XMLHttpRequest object or via JSONP.
$xhrFactory | Factory function used to create XMLHttpRequest objects.
$httpBackend | HTTP backend used by the service that delegates to XMLHttpRequest object or JSONP and deals with browser incompatibilities.
$interpolate | Compiles a string with markup into an interpolation function. This service is used by the HTML $compile service for data binding. See $interpolateProvider for configuring the interpolation markup.
$interval | AngularJS's wrapper for `window.setInterval`. The `fn` function is executed every `delay` milliseconds.
$jsonpCallbacks | This service handles the lifecycle of callbacks to handle JSONP requests. Override this service if you wish to customise where the callbacks are stored and how they vary compared to the requested url.
$locale | $locale service provides localization rules for various AngularJS components. As of right now the only public api is:
$location | The $location service parses the URL in the browser address bar (based on the window.location) and makes the URL available to your application. Changes to the URL in the address bar are reflected into $location service and changes to $location are reflected into the browser address bar.
$log | Simple service for logging. Default implementation safely writes the message into the browser's console (if present).
$parse | Converts AngularJS expression into a function.
$q | A service that helps you run functions asynchronously, and use their return values (or exceptions) when they are done processing.
$rootElement | The root element of AngularJS application. This is either the element where ngApp was declared or the element passed into `angular.bootstrap`. The element represents the root element of application. It is also the location where the application's $injector service gets published, and can be retrieved using `$rootElement.injector()`.
$rootScope | Every application has a single root scope. All other scopes are descendant scopes of the root scope. Scopes provide separation between the model and the view, via a mechanism for watching the model for changes. They also provide event emission/broadcast and subscription facility. See the developer guide on scopes.
$sceDelegate | `$sceDelegate` is a service that is used by the `$sce` service to provide Strict Contextual Escaping (SCE) services to AngularJS.
$sce | `$sce` is a service that provides Strict Contextual Escaping services to AngularJS.

$templateRequest

The `$templateRequest` service runs security checks then downloads the provided template using `$http` and, upon success, stores the contents inside of `$templateCache`. If the HTTP request fails or the response data of the HTTP request is empty, a `$compile` error will be thrown (the exception can be thwarted by setting the 2nd parameter of the function to true). Note that the contents of `$templateCache` are trusted, so the call to `$sce.getTrustedUrl(tpl)` is omitted when `tpl` is of type string and `$templateCache` has the matching entry.

$timeout | AngularJS's wrapper for `window.setTimeout`. The `fn` function is wrapped into a try/catch block and delegates any exceptions to $exceptionHandler service.
$window | A reference to the browser's `window` object. While `window` is globally available in JavaScript, it causes testability problems, because it is a global variable. In AngularJS we always refer to it through the `$window` service, so it may be overridden, removed or mocked for testing.