Улучшить эту документацию Просмотреть исходный код 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 -
$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();
Устанавливает форму в состояние «отправленной».
-
$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–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.6.9/docs/api/ng/type/form.FormController