Обращайтесь к членам FormBuilder безопасным способом строго по типу вместо строк в Angular 8 - PullRequest
0 голосов
/ 13 января 2020

Есть ли способ строго ссылаться на имена членов Formbuilder? Если имена создателей форм изменятся, приведенные ниже функции get не заметят и не отобразят ошибки компиляции. Это может создать проблемы в функциональности программы.

Необходимо обращаться к элементам управления formbuilder чистым способом.

{
this.customerForm = this.formBuilder.group({
  'firstName': [null, [Validators.required,Validators.maxLength(50)]],
  'phoneNumber': [null, [Validators.required,Validators.maxLength(50)]],
  'streetName': [null, [Validators.required,Validators.maxLength(50)]],

  'emailAddress': [null, [Validators.maxLength(50), Validators.email]],
  'city': [null, [Validators.required, Validators.maxLength(200)]],
  'state': [null, [Validators.maxLength(200)]],
  'zip':[null,[Validators.maxLength(200)]]
});

}

Обращение к именам членов formbuilder через строку , которая не помечает ошибку при изменении компонента.

  this.customerForm.get('firstName').clearValidators();
  this.customerForm.get('firstName').updateValueAndValidity();

  this.customerForm.get('phoneNumber').clearValidators();
  this.customerForm.get('phoneNumber').updateValueAndValidity();

  this.customerForm.get('streetName').clearValidators();
  this.customerForm.get('streetName').updateValueAndValidity();

1 Ответ

2 голосов
/ 13 января 2020

Конечно:

this.firstNameControl = 
  this.formBuilder.control(null, [Validators.required,Validators.maxLength(50)]);
this.customerForm = this.formBuilder.group({
  firstName: this.firstNameControl,
  ...
});

[...]

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