Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Sugestão] Implementar validator em uma versão mais recente do angular

No username-password.validator.ts deu um erro quando eu chamava o formGroup: FormGroup, fiz umas pesquisas e encontrei uma solução para o meu caso. Substituir o FormGroup por AbstractControl e tipar para ValidationErrors | null.

username-password.validator.ts

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

export const userNamePassword: ValidatorFn = (
  formGroup: AbstractControl
): ValidationErrors | null => {
  const userName = formGroup.get('userName')?.value;
  const password = formGroup.get('password')?.value;

  if (userName.trim() + password.trim()) {
    return userName != password ? null : { userNamePassword: true };
  } else {
    return null;
  }
};

E no signup.component.html utilizar [''] após o erros?.

 <app-vmessage
      *ngIf="signupForm.errors?.['userNamePassword']"
      text="Username and passowrd must be different"
    ></app-vmessage>

Espero ter ajudado!

2 respostas
solução!

Oi Ismael, tudo bem?

Muito obrigada por compartilhar sua solução conosco! É muito importante sempre pesquisar e buscar soluções para os problemas que encontramos no desenvolvimento.

Realmente, em versões mais recentes do Angular, é necessário utilizar o AbstractControl ao invés do FormGroup para implementar o Validator.

Mais uma vez, obrigado por compartilhar sua solução conosco!

Um abraço e bons estudos.

Obrigado pelo retorno, fico grato em ajudar! :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software