# Variable requiredDirective`Const`

requiredDirective: (string | (($parse: any) => {
require: string;
restrict: string;
link(scope: any, elm: any, attr: any, ctrl: any): void;
}))[] = ...

#### Param: ngRequired

AngularJS expression. If it evaluates to `true`, it sets the `required` attribute to the element and adds the `required` ngModel.NgModelController#$validators `validator`.

ngRequired adds the required ngModel.NgModelController#$validators `validator` to ngModel `ngModel`. It is most often used for input `input` and select `select` controls, but can also be applied to custom controls.

The directive sets the `required` attribute on the element if the AngularJS expression inside `ngRequired` evaluates to true. A special directive for setting `required` is necessary because we cannot use interpolation inside `required`. See the guide/interpolation interpolation guide for more info.

The validator will set the `required` error key to true if the `required` attribute is set and calling ngModel.NgModelController#$isEmpty `NgModelController.$isEmpty` with the ngModel.NgModelController#$viewValue `ngModel.$viewValue` returns `true`. For example, the `$isEmpty()` implementation for `input[text]` checks the length of the `$viewValue`. When developing custom controls, `$isEmpty()` can be overwritten to account for a $viewValue that is not string-based.

- Defined in directive/validators/validators.js:34