Angular Удалить Specifi c Форма валидатора, не все из них в Formbuilder - PullRequest
0 голосов
/ 10 января 2020

In Angular Formbuilder, как мне удалить Specifi c Validator? Существует

this.form.get('lastName').clearValidators()

Тем не менее, это удаляет ВСЕ валидаторы, просто нужно удалить «Обязательные» валидаторы и сохранить минимальную и максимальную длину.

this.editAddressForm = this.formBuilder.group({
  'firstName': [null, [Validators.maxLength(50)]],
  'lastName': [null, [Validators.required, Validators.maxLength(2), Validators.maxLength(50)]],
  'city': [null, [Validators.required, Validators.maxLength(50)]],
  'zipCode': [null, [Validators.required, Validators.maxLength(50)]]
})

Ресурс:

Angular 4 удалить требуемый валидатор условно

Ответы [ 2 ]

1 голос
/ 10 января 2020

Мне не известен встроенный способ для достижения этого.

Однако вы можете придерживаться этого подхода:

const validators = [Validators.required, Validators.min(30), Validators.max(100)];
const fc = new FormControl('', validators)

console.log(fc.valid) // false

const newValidators = validators.filter(v => v !== Validators.required);

fc.setValidators(newValidators);
fc.updateValueAndValidity();

console.log(fc.valid) // true
0 голосов
/ 10 января 2020

Я бы попробовал что-то вроде этого:

this.form.get('lastName').setValidators([Validators.maxLength(2), Validators.maxLength(50)]);
this.form.updateValueAndValidity();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...