Angular не сбрасывает валидаторы - PullRequest
0 голосов
/ 03 апреля 2020

Angular 6:

У меня есть этот конструктор форм:

this.issuerDetails = this.formBuilder.group({
  paymentInstruction: ['', [Validators.required]],
  subscriptionTemplateHtml: ['', [Validators.required]],
});

с этим геттером

get issuerDetailsForm() { return this.issuerDetails.controls; }

по дороге я удаляю валидаторы и сбросить значение / установить на нетронутый

this.issuerDetailsForm.subscriptionTemplateHtml.clearValidators();
this.issuerDetailsForm.subscriptionTemplateHtml.reset();
this.issuerDetailsForm.paymentInstruction.clearValidators();
this.issuerDetailsForm.paymentInstruction.reset(); 

Когда я go повторно активирует эти валидаторы

this.issuerDetailsForm.subscriptionTemplateHtml.setValidators(Validators.required);
this.issuerDetailsForm.paymentInstruction.setValidators(Validators.required);

Они не запускаются должным образом при отправке формы пользователем

Почему это?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Ниже может помочь код:

this.issuerDetails = this.formBuilder.group({
  paymentInstruction: ['', [Validators.required]],
  subscriptionTemplateHtml: ['', [Validators.required]],
});

Для сброса:

this.issuerDetails.reset();
this.issuerDetails.updateValueAndValidity();
0 голосов
/ 03 апреля 2020

Когда требуется сброс валидатора, необходимо запустить updateValueAndValidity, чтобы сбросить валидаторы

, поэтому после всего этого кода добавьте следующее:

this.issuerDetailsForm.subscriptionTemplateHtml.updateValueAndValidity({ onlySelf: true });
this.issuerDetailsForm.paymentInstruction.updateValueAndValidity({ onlySelf: true });

Он запускает валидатор и очищает любые предыдущие состояния

Что такое updateValueAndValidity

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...