4
respostas

Erro no ngModel

Olá! Estou fazendo seu curso e logo no 1º campo - nome peguei este erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

4 respostas

Olá Antonio, tudo bem?

Normalmente este erro ocorre quando você usa o "ngModel" dentro de uma tag "form" e não define o atributo "name" no elemento "input" (provavelmente, de acordo com os exemplos mencionados na mensagem de erro).

Então para corrigir você tem duas opções (inclusive a mensagem mostra isso).

  • Adiciona o atributo "name" no input que você tem no formulário, exemplo:
<input type="text" name="nome_do_atributo_que_você_quer" [(ngModel)]="person.firstName">
</input>
  • Adiciona o atributo "[ngModelOptions]="{standalone: true}"", exemplo:
<input type="text" [ngModel]="person.firstName" [ngModelOptions]="{standalone: true}">
</input>

A primeira solução é a mais simples e mais adequada. Espero ter ajudado.

Bons estudos.

se esta solução te ajudou, não esqueça de marcar o tópico como resolvido.

Opa bom dia Wilson! Saiu o erro, porém não está validando o campo.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Olá Antonio, tudo bem?

Eu nunca testei com as duas opções, realmente eu não sei o comportamento, tenta deixar apenas o atributo name="nome" e remove o atributo "ngModelOptions" para ver se a validação ocorre normalmente. Outra coisa, no formulário existe o campo "nome"? para que o angular faça o bind corretamente?

Caso não funcione, compartilha conosco a classe .js do seu componente para analisarmos.

Observação: No input eu notei que você colocou um atributo "nome="name"", isso seria para qual objetivo?

Outra dica é:

Já que o nome do atributo no formulário é "nome", o mesmo que foi atribuído ao input, não precisa colocar [(ngModel)]="nome", basta colocar "ngModel", então seu input poderá ficar assim:

...
<input name="nome" id="nome" class="campo__escrita" ngModel required minlength="2">
</input>
...

Espero ter ajudado.

se esta solução te ajudou, não esqueça de marcar o tópico como resolvido.