Сбросить угловой 7 Реактивный от проверки - PullRequest
0 голосов
/ 30 апреля 2019

Я использую форму Angular Reactive в качестве формы поиска. Я хочу иметь возможность сбросить форму. Я сделал это с помощью следующего кода:

<button type="reset" (click)="onReset()">
    Reset
</button>

Метод сброса делает следующее:

onReset(){
    this.myForm.reset();
    this.myForm.markAsPristine();
    this.myForm.markAsUntouched();
}

Это делает все элементы управления формы пустыми. Но это не сбрасывает проверку формы. Я деактивирую кнопку отправки, если форма недействительна. Это работает, когда я впервые использую форму. После того, как я нажму на сброс, проверка больше не работает. Кажется, он деактивирован после отправки формы.

Как я могу решить это? Что мне здесь не хватает?

Ответы [ 2 ]

2 голосов
/ 30 апреля 2019

Вы можете удалить проверки в определенной форме formGroup / formcontrol, используя clearValidators () для реактивных форм.

 this.formGroup.clearValidators() or      
 this.formGroup.controls.controlName.clearValidators()

После этого необходимо обновить элемент управления формы с помощью удаленного валидатора

this.formGroup.controls.controlName.updateValueAndValidity()

Это помогло мне решить ту же проблему, надеюсь, это поможет вам

0 голосов
/ 30 апреля 2019

Пожалуйста, используйте следующий код:

this.myForm.reset()
Object.keys(this.myForm.controls).forEach(key => {
  this.myForm.controls[key].setErrors(null)
});
...