@msdosx86

Почему ангуляр игнорирует валидатор?

this.myform = new FormGroup({
      'name': new FormControl('', [
        Validators.required,
        Validators.minLength(3),
        Validators.maxLength(20)
      ]),
      'email': new FormControl('', [
        Validators.required,
        Validators.email
      ]),
      'password': new FormControl('', [
        Validators.required,
        Validators.pattern(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,}$/)
      ]),
      'password_repeat': new FormControl('', [
        Validators.required
      ])
    }, this.passwordMatchValidator)


вторым аргументом к FormGroup идет дополнительный валидатор, который не срабатывает вообще. Пробовал { validator: this.passwordMatchValidator }, всё равно игнорит. Значит ли это то, что если у всех контролов есть свои валидаторы, то дополнительный будет игнориться?
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 1
mazhekin
@mazhekin
Frontend, Backend Web Developer
в таком варианте групповой валидатор не срабатывает this.myform = new FormGroup({ хотя должен был бы, используйте this.formBuilder.group
constructor(private formBuilder: FormBuilder)  {}
    
ngOnInit() {
    this.myform = this.formBuilder.group({
        name: new FormControl('', [.....
           ....
        }, {
            validator:  myComponent.myGroupValidator
        })
}

static myGroupValidator(control: AbstractControl): { [key: string]: boolean } | null { 
    // тут в дебаге проверьте, что заходит сюда
    ....
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы