ControlValueAccessor
Определяет интерфейс, служащий мостом между API форм Angular и нативным элементом DOM.
API
interface ControlValueAccessor {
writeValue(obj: any): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
optional setDisabledState(isDisabled: boolean): void;
}
writeValue
voidЗаписывает новое значение в элемент.
Этот метод вызывается API форм для обновления представления, когда требуется программно передать изменения из модели в представление.
anyНовое значение элемента
void
Запись значения в элемент
В следующем примере значение записывается в нативный элемент DOM.
writeValue(value: any): void {
this._renderer.setProperty(this._elementRef.nativeElement, 'value', value);
}
registerOnChange
voidРегистрирует функцию обратного вызова, которая вызывается при изменении значения элемента управления в пользовательском интерфейсе.
Этот метод вызывается API форм при инициализации для обновления модели формы, когда значения передаются из представления в модель.
При реализации метода registerOnChange в собственном средстве доступа к значению сохраните переданную функцию, чтобы ваш класс вызывал её в нужный момент.
anyФункция обратного вызова для регистрации
void
Сохранение функции изменения
В следующем примере переданная функция сохраняется как внутренний метод.
registerOnChange(fn: (_: any) => void): void {
this._onChange = fn;
}
При изменении значения в пользовательском интерфейсе вызовите зарегистрированную функцию, чтобы API форм мог обновить своё состояние:
host: {
'(change)': '_onChange($event.target.value)'
}
registerOnTouched
voidРегистрирует функцию обратного вызова, которая вызывается API форм при инициализации для обновления модели формы при потере фокуса.
При реализации registerOnTouched в собственном средстве доступа к значению сохраните переданную функцию, чтобы ваш класс вызывал её, когда элемент управления следует считать потерявшим фокус или «затронутым».
anyФункция обратного вызова для регистрации
void
Сохранение функции обратного вызова
В следующем примере переданная функция сохраняется как внутренний метод.
registerOnTouched(fn: any): void {
this._onTouched = fn;
}
При потере фокуса (или аналогичном событии) ваш класс должен вызвать зарегистрированную функцию, чтобы API форм мог обновить своё состояние:
host: {
'(blur)': '_onTouched()'
}
setDisabledState
voidФункция, вызываемая API форм при изменении статуса элемента управления на 'DISABLED' или с 'DISABLED'. В зависимости от статуса она включает или отключает соответствующий элемент DOM.
booleanСтатус отключения, который нужно установить для элемента
void
В следующем примере свойство disabled записывается в нативный элемент DOM:
setDisabledState(isDisabled: boolean): void {
this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);
}
Описание
Определяет интерфейс, служащий мостом между API форм Angular и нативным элементом DOM.
Реализуйте этот интерфейс, чтобы создать пользовательскую директиву элемента управления формы, интегрированную с формами Angular.
Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/forms/ControlValueAccessor