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.