Улучшить эту документацию Просмотреть исходный код form.FormController
- тип в модуле ng
Обзор
FormController отслеживает все свои элементы управления и вложенные формы, а также их состояние, например, валидность/невалидность или грязность/чистоту.
Каждый директива form создает экземпляр FormController.
Методы
-
$rollbackViewValue();
Отменить все элементы управления формы, ожидающие обновлений
$modelValue.Обновления могут ожидаться из-за событий с отложенным выполнением или потому, что вход ожидает некоторое будущее событие, определенное в
ng-model-options. Этот метод обычно требуется для кнопки сброса формы, которая используетng-model-optionsдля отложенных обновлений. -
$commitViewValue();
Зафиксировать все элементы управления формы, ожидающие обновлений
$modelValue.Обновления могут ожидаться из-за событий с отложенным выполнением или потому, что вход ожидает некоторое будущее событие, определенное в
ng-model-options. Этот метод редко требуется, так какNgModelControllerобычно обрабатывает вызов этого метода в ответ на события ввода. -
$addControl(control);
Зарегистрировать элемент управления в форме. Элементы ввода с ngModelController делают это автоматически при связывании.
Обратите внимание, что текущее состояние элемента управления не будет отражено в новой родительской форме. Это не проблема при обычном использовании, так как только что скомпилированные и связанные элементы управления находятся в состоянии
$pristine.Однако, если метод используется программно, например, для добавления динамически созданных элементов управления или элементов управления, которые были ранее удалены без уничтожения соответствующего элемента DOM, разработчик отвечает за обеспечение того, чтобы текущее состояние распространялось на родительскую форму.
Например, если добавлен элемент управления вводом, который уже
$dirtyи имеет свойства$error, вызов$setDirty()и$validate()впоследствии распространит состояние на родительскую форму.Параметры
Параметр Тип Подробности control objectОбъект управления, либо
form.FormController, либоngModel.NgModelController -
$getControls();
Этот метод возвращает поверхностную копию элементов управления, которые в настоящее время являются частью этой формы. Элементы управления могут быть экземплярами
FormController(«дочерние формы») иNgModelController. Если вам нужен доступ к элементам управления дочерних форм, вы должны вызывать$getControls()рекурсивно на них. Это можно использовать, например, для итерации по всем элементам управления для их проверки.Элементы управления можно получить обычным способом, но добавление или удаление элементов управления из массива не повлияет на форму. Вместо этого используйте
$addControl()и$removeControl()для этого случая. Аналогично, добавление элемента управления в форму или удаление из формы не отражается в поверхностной копии. Это означает, что вы должны получать свежую копию из$getControls()каждый раз, когда вам нужен доступ к элементам управления.Возвращаемое значение
ArrayЭлементы управления, которые в настоящее время являются частью этой формы
-
$removeControl(control);
Удаление элемента управления из формы.
Элементы ввода с ngModelController делают это автоматически при уничтожении.
Обратите внимание, что из формы будет удалено только состояние валидации удаленного элемента управления (
$errorsи т. д.).$dirty,$submittedсостояния не изменятся, потому что ожидаемое поведение может отличаться в разных случаях. Например, удаление единственного элемента управления$dirtyиз формы может означать, что форма по-прежнему$dirty.Параметры
Параметр Тип Подробности control objectОбъект управления, либо
form.FormController, либоngModel.NgModelController -
$setDirty();
Устанавливает форму в грязное состояние.
Этот метод можно вызвать для добавления класса 'ng-dirty' и установки формы в грязное состояние (класс ng-dirty). Этот метод также будет распространяться на родительские формы.
-
$setPristine();
Устанавливает форму в первоначальное состояние.
Этот метод устанавливает состояние формы
$pristineв true, состояние$dirtyв false, удаляет классng-dirtyи добавляет классng-pristine. Кроме того, он устанавливает состояние$submittedв false.Этот метод также будет распространяться на все элементы управления, содержащиеся в этой форме.
Установить форму обратно в первоначальное состояние часто бывает полезно, когда мы хотим «переиспользовать» форму после сохранения или сброса.
-
$setUntouched();
Устанавливает форму в состояние нетронутости.
Этот метод можно вызвать для удаления класса 'ng-touched' и установки элементов управления формы в состояние нетронутости (класс ng-untouched).
Установить элементы управления формы обратно в состояние нетронутости часто бывает полезно при установке формы обратно в первоначальное состояние.
-
$setSubmitted();
Устанавливает форму в состояние
$submitted. Это также установит$submittedна всех дочерних и родительских формах формы. -
$setValidity(validationErrorKey, isValid, controller);
Изменить состояние валидности формы и уведомить родительскую форму (если она есть).
Разработчики приложений редко будут вызывать этот метод напрямую. Он используется внутри, методом NgModelController.$setValidity(), для распространения состояния валидности элемента управления на родительскую
FormController.Параметры
Параметр Тип Подробности validationErrorKey stringИмя валидатора. Ключ
validationErrorKeyбудет назначен либо$error[validationErrorKey], либо$pending[validationErrorKey](для невыполненных$asyncValidators), чтобы он был доступен для привязки данных. КлючvalidationErrorKeyдолжен быть в формате camelCase и преобразуется в dash-case для имени класса. Например,myErrorприведет к классамng-valid-my-errorиng-invalid-my-errorи может быть привязан как{{ someForm.$error.myError }}.isValid booleanЯвляется ли текущее состояние валидным (true), невалидным (false), ожидающим (undefined) или пропущенным (null). Ожидание используется для невыполненных
$asyncValidators. Пропуск используется AngularJS, когда валидаторы не выполняются из-за ошибок разбора и когда$asyncValidatorsне выполняются, потому что любой из$validatorsне прошёл.controller NgModelControllerFormControllerЭлемент управления, состояние валидности которого вызывает изменение.
Свойства
-
$pristine
booleanTrue, если пользователь еще не взаимодействовал с формой.
-
$dirty
booleanTrue, если пользователь уже взаимодействовал с формой.
-
$valid
booleanTrue, если все содержащиеся формы и элементы управления валидны.
-
$invalid
booleanTrue, если хотя бы один содержащий элемент управления или форма невалидны.
-
$submitted
booleanTrue, если пользователь отправил форму, даже если она невалидна.
-
$pending
ObjectХэш-объект, содержащий ссылки на элементы управления или формы с ожидающими валидаторами, где:
- ключами являются токены валидации (имена ошибок).
- значениями являются массивы элементов управления или форм, которые имеют ожидающий валидатор для данного имени ошибки.
См. $error для списка встроенных токенов валидации.
-
$error
ObjectХэш-объект, содержащий ссылки на элементы управления или формы с невыполненными валидаторами, где:
- ключами являются токены валидации (имена ошибок),
-
значениями являются массивы элементов управления или форм, которые имеют невыполненный валидатор для данного имени ошибки.
Встроенные токены валидации:
emailmaxmaxlengthminminlengthnumberpatternrequiredurldatedatetimelocaltimeweekmonth
© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
https://code.angularjs.org/1.8.2/docs/api/ng/type/form.FormController