#angular #angular2-forms
#angular #angular2-формы
Вопрос:
Как мы можем сбросить элементы управления с состояниями проверки управляемых шаблоном форм в angular 2? Я знаю, что элементы управления можно сбросить, установив значения модели, к которым они привязаны. Но как насчет состояний проверки (нетронутых, грязных и т. Д.)?
Я пробовал что-то вроде этого:
<form (ngSubmit)="onSubmit(playlistForm)" #playlistForm="ngForm">
// Some code here...
</form>
И в контроллере,
onSubmit(playlistForm: any) {
// ...
playlistForm.form.reset();
}
Но выше, похоже, на самом деле перенаправляет на ''
И я получаю сообщение об ошибке ниже:
EXCEPTION: Error: Uncaught (in promise): Error: Cannot match any routes: ''
Итак, как мне делать то, что я хочу?
Ответ №1:
Оба они сработали для меня:
playlistForm.reset();
playlistForm.resetForm(); // I think this is the one to use
В документах Angular есть только resetForm()
https://angular.io/docs/ts/latest/api/forms/index/NgForm-directive.html
Комментарии:
1. @StepanZarubin Я использую
angular 2.4.0
, ни одна из них не работает для меня2. reset() работает для меня
Angular 6.1.0
из класса FromControl3. reset () выдает ошибку проверки после отправки. Что мне делать?
Ответ №2:
<form (ngSubmit)="onSubmit(playlistForm)" #playlistForm="ngForm">
// Some code here...
</form>
onSubmit(playlistForm: ngForm) {
// ...
playlistForm.form.reset();
}
Комментарии:
1. опечатка>> onSubmit(playlistForm: ngForm) {
Ответ №3:
Это сработало для меня:
<form (ngSubmit)="onSubmit(playlistForm);playlistForm.reset()" #playlistForm="ngForm">
// Some code here...
</form>
Комментарии:
1.
reset()
выдает ошибку проверки после отправки. Что мне делать?
Ответ №4:
form.resetForm();
Это также сбрасывает состояния проверки формы, в отличие form.reset()
от . Работает с управляемыми шаблонами и реактивными подходами.
Комментарии:
1. Похоже, это больше не функция.
2. Это так. Я использовал
@angular/forms: 8.0.0
, когда был опубликован этот ответ.@angular/forms: 11.2.11
form.resetForm()
Насколько я могу судить, я использую и в настоящее время доступен как метод в классе ngForm в указанных версиях и промежуточных версиях.
Ответ №5:
Я использовал ссылку на собственный элемент в .ts и позже вызвал форму, очистил данные формы после отправки с использованием метода сброса
Ответ №6:
Это сработало для меня OnClear() — это дополнительный обратный вызов, который мне нужен для некоторых дополнительных задач.
<button type="reset" (click)="onClear()">Clear</button>
Комментарии:
1. Это не помогает OP. Он запрашивает очистку формы, когда пользователь нажимает кнопку отправки.