Он определяет интерфейс, который действует как мост между API форм Angular и собственным элементом в DOM.

Реализация интерфейса
interface ControlValueAccessor {
writeValue(obj: Any): void
registerOnChange(fn: Any): void
registerOnTouched(fn: Any): void
setDisabledState(isDisabled: boolean)? : пустота
}

Пример использования инициализации

Пример использования взаимодействия

  • writeValue: когда установлено новое значение FormControl (setValue, patchValue и reset)
  • setDisabledState: когда FormControl включен или отключен.
  • onChange: когда пользователь вводит новое значение, вызовите его, чтобы обновить значение FormControl. По умолчанию это пустая функция, чтобы избежать ошибок при ее вызове перед registerOnChange.
  • onTouched: когда пользователь взаимодействует с графическим интерфейсом, вызывается, чтобы сообщить FormControl, что к нему прикоснулись. По умолчанию это пустая функция, чтобы избежать ошибок при ее вызове перед registerOnTouched.

Реализация на уровне кода

writeValue(значение: любое): void {
this._renderer.setProperty(this._elementRef.nativeElement, ‘value’, value);
}

RegisterOnChange(fn: (_: Any) =› void): void {
this._onChange = fn;
}

RegisterOnTouched(fn: Any): void {
this._onTouched = fn;
}

setDisabledState(isDisabled: boolean): void {
this._renderer.setProperty(this._elementRef.nativeElement, ‘disabled’, isDisabled);
}

Для получения дополнительной информации обратитесь к официальной документации Angular.