1
resposta

"ngSubmit" do Angular.

Gostaria de saber a definição de "ngSubmit" do Angular.

1 resposta

Fala Luiz! Tudo bem? Espero que sim

O ngSubmit irá cuidar pra gente de fazer o submit do formulário.

Há 3 formas de trabalhar com formulários em Angular. Utilizando o FormsModule (que dá a possibilidade de utilizar o ngSubmit dentre outras coisas), utilizando o ReactiveFormsModule (que possibilita a criação de formulários reativos) e não utilizando nenhum desses dois caras (que equivale a trabalhar com um formulário padrão do HTML).

Se o caso for o 3º, então não haverá possibilidade de utilizar o ngSubmit, uma vez que esse só é disponibilizado através dos módulos FormsModule ou ReactiveFormsModule. Portanto, teremos que utilizar o submit e, nesse caso, ao submeter o formulário a página será recarregada.

Por outro lado, caso estejamos utilizando o FormsModule ou ReactiveFormsModule, o ngSubmit passa a estar habilitado para uso e ao submeter o formulário a página não é recarregada. Uma curiosidade intrigante a ser observada é que também nesse caso é possível utilizar o submit e obter o mesmo comportamento. A documentação do Angular não é clara quanto ao motivo disso, mas eu imagino que seja para facilitar na hora de migrar um formulário que não utilize nenhum dos módulos de formulário do Angular e onde se deseja passar a utilizar algum desses módulos. Contudo, a boa prática é sempre utilizar o ngSubmit quando estiver utilizando o FormsModule ou o ReactiveFormsModule.

Pegou a ideia, Júlio? Qualquer coisa é só falar!

Obs.: A título de exemplificação prática do que eu falei, o instrutor Gabriel fez esse código onde é possível ver o funcionamento dos formulários em Angular. Respectivamente chamados de Formulário Padrão (sem utilizar nenhum módulo de formulário do Angular), Formulário Template (utilizando apenas o FormsModule) e Formulário Reativo (utilizando o ReactiveFormsModule). Caso queira modificar o código como quiser alternando entre o submit e o ngSubmit para ver na prática o que foi dito aqui, faça um fork antes.

Grande abraço e bons estudos, meu aluno!