# Service components in `ng`

Name | Description
--- | ---
$anchorScroll | When called, it checks the current value of $location.hash() and scrolls to the related element, according to the rules specified in the Html5 spec.
$animate | The $animate service provides rudimentary DOM manipulation functions to insert, remove and move elements within the DOM, as well as adding and removing classes. This service is the core service used by the ngAnimate $animator service which provides high-level animation hooks for CSS and JavaScript.
$cacheFactory | Factory that constructs Cache objects and gives access to them.
$templateCache | The first time a template is used, it is loaded in the template cache for quick retrieval. You can load templates directly into the cache in a `script` tag, or by consuming the `$templateCache` service directly.
$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 angular 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.
$http | The `$http` service is a core Angular service that facilitates communication with the remote HTTP servers via the browser's XMLHttpRequest object or via JSONP.
$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 | Angular's wrapper for `window.setInterval`. The `fn` function is executed every `delay` milliseconds.
$locale | $locale service provides localization rules for various Angular 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 Angular 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 Angular 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 an 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 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).
$timeout | Angular'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 angular we always refer to it through the `$window` service, so it may be overridden, removed or mocked for testing.