2
respostas

Dúvida ao criar validador customizado

Professor, fazendo uma adaptação no exemplo criei um validador customizado para verificar se um campo coincide com outro, para usar, por exemplo, numa página de trocar senha o usuário deve digitar uma nova senha e depois redigitar em outro campo a mesma senha.

Fiz o seguinte validador:

import { AbstractControl, ValidatorFn } from '@angular/forms';

export function sameValidator(field1: string, field2: string): ValidatorFn {
   return (control: AbstractControl): { [key: string]: boolean | null } => {
      if (control.get(field1) !== control.get(field2)) {
         return { same: true };
      }
      return null;
   };
}

No controller está assim:

ngOnInit() {
      this.newPasswordForm = this.formBuilder.group({
         username: ['', Validators.required],
         passwordAtual: ['', Validators.required],
         passwordNovo: ['', Validators.required],
         passwordConfirmacao: [
            '',
            [Validators.required, sameValidator('passwordNovo', 'passwordConfirmacao')]
         ]
      });
   }

Porém o validador não funciona.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas

Fala Marcos, tudo bom?

Dando um console.log em if (control.get(field1) !== control.get(field2)) { você consegue ver o conteúdo desses campos?

Retorna null