Gostaria de saber a definição de "ngSubmit" do Angular.
Gostaria de saber a definição de "ngSubmit" do Angular.
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!