Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

?.errors?.minusculo não funciona

Tentei aplicar o errors, mas não reconhece o minusculo.

<app-mensagem
        *ngIf="novoUsuarioForm.get('userName')?.errors?.minusculo &&
        novoUsuarioForm.get('userName')?.touched"
        mensagem="Usuario deve ser cadastrado com letras minúsculas"
  ></app-mensagem>

Alguém tem alguma dica?

1 resposta
solução!

Oi André, tudo bem?

Desculpe a demora em retornar.

Primeiramente, é importante entender que o objeto errors é uma propriedade do FormControl, que é responsável por armazenar as informações de validação de um campo específico. No seu código, você está tentando acessar a propriedade minusculo do objeto errors do campo userName usando a notação de ponto. No entanto, isso não está funcionando como esperado.

Uma possível explicação para esse problema é que a propriedade minusculo não foi definida corretamente na função de validação do campo userName. Verifique se você definiu essa propriedade corretamente em sua função de validação. Por exemplo, você pode definir uma função de validação personalizada para verificar se o valor do campo está em letras minúsculas:

function letrasMinusculas(control: AbstractControl): {[key: string]: boolean} | null {
  const valor = control.value;
  if (valor && valor !== valor.toLowerCase()) {
    return { 'minusculo': true };
  }
  return null;
}

Nesse exemplo, a função letrasMinusculas verifica se o valor do campo está em letras minúsculas e retorna um objeto com a propriedade minusculo definida como true se o valor não estiver em letras minúsculas. Caso contrário, a função retorna null, indicando que o valor é válido.

Para usar essa função de validação no seu campo userName, você pode passá-la como um array de validadores para o método Validators.compose():

import { Validators } from '@angular/forms';

// ...

novoUsuarioForm = this.formBuilder.group({
  userName: ['', Validators.compose([
    Validators.required,
    letrasMinusculas
  ])]
});

Nesse exemplo, estamos usando o método Validators.compose() para combinar a validação de campo obrigatório com a validação personalizada de letras minúsculas.

Com essa configuração, você pode acessar a propriedade errors.minusculo do objeto userName para verificar se o valor do campo está em letras minúsculas:

<app-mensagem
  *ngIf="novoUsuarioForm.get('userName').errors?.minusculo && novoUsuarioForm.get('userName').touched"
  mensagem="Usuário deve ser cadastrado com letras minúsculas"
></app-mensagem>

Certifique-se de que você está usando a notação correta de ponto e de que a propriedade minusculo foi definida corretamente em sua função de validação. Além disso, verifique se você está acessando corretamente o objeto errors do campo userName no seu template.

Espero que essas dicas possam ajudá-lo a solucionar o seu problema.

Um abraço e bons estudos.

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