Установить несколько валидаторов - Angular Reactive Form

Я пытаюсь установить несколько валидаторов после инициализации элемента управления, но кажется, что валидаторы не добавляются.

Код:

 this.infoForm.controls['email'].setValidators(this.DynamicValidation(validations));

 DynamicValidation(list: Array<string>): Array<ValidatorFn> {
  const validators: Array<ValidatorFn> = [];
  list.forEach((validator: string) => {
      if (validator === 'required') {
          validators.push(Validators.required);
          return;
        }
         // other validators implementation
    }
 }

Ничего особенного, есть ли способ установить собственное имя валидатора с таким флагом, как этот validators.push ({isMatching: false}.?


person Tim cook    schedule 22.09.2020    source источник
comment
Я думаю, вам нужно будет вернуть созданный массив: return validators; после блока foreach.   -  person Silvermind    schedule 22.09.2020
comment
можно ли использовать validators.push ({'isMatching': false), если я хочу установить собственный валидатор?   -  person Tim cook    schedule 22.09.2020


Ответы (1)


Попробуй это:

 this.infoForm.controls['email'].setValidators(this.DynamicValidation(validations));

 DynamicValidation(list: Array<string>): Array<ValidatorFn> {
  const validators: Array<ValidatorFn> = [];
  list.forEach((validator: string) => {
      if (validator === 'required') {
          validators.push(Validators.required);
          return validators;
        }
         // other validators implementation
    }
 }
person ng-hobby    schedule 22.09.2020
comment
можно ли использовать validators.push ({'isMatching': false), если я хочу установить собственный валидатор? - person Tim cook; 23.09.2020