# angular.directive

Work in Progress This page is currently being revised. It might be incomplete or contain inaccuracies.

Custom attributes for DOM elements. Directives modify the behavior of the element they are specified in, but are not intended to add elements to the DOM as are `widgets`.

Following is the list of built-in angular directives:

- `ng:bind` - Creates a data-binding between HTML text value and data model.
- `ng:bind-attr` - Creates a data-binding as in `ng:bind`, but uses JSON key / value pairs.
- `ng:bind-template` - Replaces text value of an element with a specified template.
- `ng:change` - Executes an expression when the value of an input widget changes.
- `ng:class` - Conditionally set CSS class on an element.
- `ng:class-even` - Like `ng:class`, but works in conjunction with `angular.widget.@ng:repeat` to affect even rows in a collection.
- `ng:class-odd` - Like `ng:class`, but works with `angular.widget.@ng:repeat` to affect odd rows.
- `ng:click` - Executes custom behavior when element is clicked.
- `ng:controller` - Creates a scope object linked to the DOM element and assigns behavior to the scope.
- `ng:eval` - Executes a binding but blocks output.
- `ng:eval-order` - Change evaluation order when updating the view.
- `ng:hide` - Conditionally hides a portion of HTML.
- `ng:href` - Places an href in the angular namespace.
- `angular.directive.ng:init` - Initialization tasks run before a template is executed.
- `ng:show` - Conditionally displays a portion of HTML.
- `ng:src` - Places a `src` attribute into the angular namespace.
- `ng:style` - Conditionally set CSS styles on an element.
- `angular.directive.ng:submit` - Binds angular expressions to `onSubmit` events.

For more information about how angular directives work, and how to create your own directives, see Understanding Angular Directives in the angular Developer Guide.