• Overview
@angular/forms/signals

Control

directive

Binds a form Field to a UI control that edits it. A UI control can be one of several things:

  1. A native HTML input or textarea
  2. A signal forms custom control that implements FormValueControl or FormCheckboxControl
  3. A component that provides a ControlValueAccessor. This should only be used to backwards compatibility with reactive forms. Prefer options (1) and (2).

API

    
      class Control<T> {}
    
    

field

WritableSignal<Field<T>>

The field that is bound to this control.

state

Signal<FieldState<T, string | number>>

The field state of the bound field.

el

ElementRef<HTMLElement>

The HTMLElement this directive is attached to.

cvaArray

ControlValueAccessor[] | null

The NG_VALUE_ACCESSOR array for the host component.

ngControl

NgControl

A fake NgControl provided for better interop with reactive forms.

cva

any

The ControlValueAccessor for the host component.

Description

Binds a form Field to a UI control that edits it. A UI control can be one of several things:

  1. A native HTML input or textarea
  2. A signal forms custom control that implements FormValueControl or FormCheckboxControl
  3. A component that provides a ControlValueAccessor. This should only be used to backwards compatibility with reactive forms. Prefer options (1) and (2).

This directive has several responsibilities:

  1. Two-way binds the field's value with the UI control's value
  2. Binds additional forms related state on the field to the UI control (disabled, required, etc.)
  3. Relays relevant events on the control to the field (e.g. marks field touched on blur)
  4. Provides a fake NgControl that implements a subset of the features available on the reactive forms NgControl. This is provided to improve interoperability with controls designed to work with reactive forms. It should not be used by controls written for signal forms.
Jump to details