Улучшить эту документацию Просмотреть исходный код form.FormController
- тип в модуле ng
Обзор
FormController отслеживает все свои элементы управления и вложенные формы, а также их состояние, например, валидность/невалидность или грязность/чистоту.
Каждый директива формы создаёт экземпляр 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для всех дочерних и родительских форм формы. -
$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.7.8/docs/api/ng/type/form.FormController