Improve this Doc View Source

## Overview

HTML textarea element control with AngularJS data-binding. The data-binding and validation properties of this element are exactly the same as those of the input element.

## Known Issues

When specifying the `placeholder` attribute of `<textarea>`, Internet Explorer will temporarily insert the placeholder value as the textarea's content. If the placeholder value contains interpolation (`{{ ... }}`), an error will be logged in the console when AngularJS tries to update the value of the by-then-removed text node. This doesn't affect the functionality of the textarea, but can be undesirable.

You can work around this Internet Explorer issue by using `ng-attr-placeholder` instead of `placeholder` on textareas, whenever you need interpolation in the placeholder value. You can find more details on `ngAttr` in the Interpolation section of the Developer Guide.

## Directive Info

- This directive executes at priority level 0.

## Usage

- as element:

      <textarea
        ng-model="string"
        [name="string"]
        [required="string"]
        [ng-required="string"]
        [ng-minlength="number"]
        [ng-maxlength="number"]
        [ng-pattern="string"]
        [ng-change="string"]
        [ng-trim="boolean"]>
      ...
      </textarea>

### Arguments

Param | Type | Details
--- | --- | ---
ngModel | string | Assignable AngularJS expression to data-bind to.
name (optional) | string | Property name of the form under which the control is published.
required (optional) | string | Sets `required` validation error key if the value is not entered.
ngRequired (optional) | string | Adds `required` attribute and `required` validation constraint to the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of `required` when you want to data-bind to the `required` attribute.
ngMinlength (optional) | number | Sets `minlength` validation error key if the value is shorter than minlength.
ngMaxlength (optional) | number | Sets `maxlength` validation error key if the value is longer than maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any length.
ngPattern (optional) | string | Sets `pattern` validation error key if the ngModel $viewValue does not match a RegExp found by evaluating the AngularJS expression given in the attribute value. If the expression evaluates to a RegExp object, then this is used directly. If the expression evaluates to a string, then it will be converted to a RegExp after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to `new RegExp('^abc$')`. Note: Avoid using the `g` flag on the RegExp, as it will cause each successive search to start at the index of the last search's match, thus not taking the whole input value into account.
ngChange (optional) | string | AngularJS expression to be executed when input changes due to user interaction with the input element.
ngTrim (optional) | boolean | If set to false AngularJS will not automatically trim the input. (default: true)