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

Validações customizadas: parâmetros

Curso: Angular: boas práticas em arquitetura e formulários O professor criou dois validators: minusculoValidator que recebe como parâmetro (control: AbstractControl) e usuarioSenhaIguaisValidator que recebe (formGroup: FormGroup), não entendi esta passagem de parâmetros. Na chamada, em novo-usuario.component.ts, é usado apenas o nome do validator: "[minusculoValidator]" e "[usuarioSenhaIguaisValidator]". Como o Angular envia estes valores?

1 resposta
solução!

Olá Raury, tudo bem com você?

É um padrão de validação do Angular receber o parâmetro FormGroup ou FormControl na criação ou retorno da função de validação personalizada, que é responsável por rastrear o valor e o status de validação de um controle de formulário.

Sendo assim, ao usar o nome do validator entre colchetes, como [minusculoValidator] e [usuarioSenhaIguaisValidator], estamos instruindo o Angular a procurar uma diretiva com esse nome. Ou seja, ao adicionar a diretiva [minusculoValidator] a um campo de formulário, o Angular irá automaticamente chamar o validator minusculoValidator e passar o controle do formulário (AbstractControl) como parâmetro para a função. Isso permite que o validator acesse o valor do campo e execute a lógica de validação adequada. De forma análoga, quando adicionamos a diretiva [usuarioSenhaIguaisValidator] a um FormGroup, o Angular chama o validator usuarioSenhaIguaisValidator e passa o FormGroup como parâmetro. Isso permite que o validator acesse os controles do FormGroup, como os campos de usuário e senha, para executar a validação necessária.

De forma resumida, quando o Angular encontra essas diretivas personalizadas durante o processo de validação do formulário, ele injeta automaticamente os parâmetros apropriados. No caso do [minusculoValidator], o Angular injeta o AbstractControl correspondente ao campo sendo validado. No caso do [usuarioSenhaIguaisValidator], o Angular injeta o FormGroup por completo, onde dentro dessas funções é possível capturar os valores necessários para a validação.

A título de curiosidade, caso queira se aprofundar neste assunto, recomendo as leituras abaixo, que trata sobre validação de formulários em Angular, podendo ou não utilizar parâmetros na invocação da mesma em alguns casos:

Observação: O conteúdo recomendado está em inglês, comum na área da tecnologia, utilize o tradutor para melhor compreensão.

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!