Improve this Doc View Source

## Overview

A service that can be used to create instances of component controllers. Useful for unit-testing.

Be aware that the controller will be instantiated and attached to the scope as specified in the component definition object. If you do not provide a `$scope` object in the `locals` param then the helper will create a new isolated scope as a child of `$rootScope`.

If you are using `$element` or `$attrs` in the controller, make sure to provide them as `locals`. The `$element` must be a jqLite-wrapped DOM element, and `$attrs` should be an object that has all properties / functions that you are using in the controller. If this is getting too complex, you should compile the component instead and access the component's controller via the `controller` function.

See also the section on unit-testing component controllers in the guide.

## Usage

`$componentController(componentName, locals, [bindings], [ident]);`

### Arguments

Param | Type | Details
--- | --- | ---
componentName | string | the name of the component whose controller we want to instantiate
locals | Object | Injection locals for Controller.
bindings (optional) | Object | Properties to add to the controller before invoking the constructor. This is used to simulate the `bindToController` feature and simplify certain kinds of tests.
ident (optional) | string | Override the property name to use when attaching the controller to the scope.

### Returns

Object | Instance of requested controller.