1
resposta

Erro de Bind na tela de Login

Olá,

Iniciei recentemente o curso de angular e estou construindo uma tela de login de acordo com as aulas. a Tela está da seguinte foma:

<h4 class="text-cente">Login</h4>
<form class="form mt-4" (ngSubmit)="logIn()">
  <div class="form-group">
    <input class="form-control" placeholder="Nomde do usuário" [(ngModel)]="usuario" name="usuario" >
  </div>
  <div class="form-group">
    <input class="form-control" type="password" placeholder="Senha" [(ngModel)]="senha" name="senha" >
  </div>
  <button type="submit" class="btn btn-primary btn-block">Login</button>
</form>

E classe de serviço que "controla" a tela esta da seguinte forma:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {

  usuario = "";
  senha = "";

  constructor() { }

  ngOnInit(): void {

  }

  logIn(){

  }

}

O problema que o angular esta apresentando os seguintes erros:

Error: src/app/home/login/login.component.html:7:69 - error NG8002: Can't bind to 'ngModel' since it isn't a known property of 'input'.
 <input class="form-control" placeholder="Nomde do usuário" [(ngModel)]="usuario" name="usuario" >
Error: src/app/home/login/login.component.html:4:77 - error TS2322: Type 'Event' is not assignable to type 'string'.
 <input class="form-control" placeholder="Nomde do usuário" [(ngModel)]="usuario" name="usuario" >

Mantive o código igual do curso, mas está apresentando essa mensagem. Alguém pode me ajudar a enxergar o meu erro?

1 resposta

Olá, Marcos! Tudo bem?

Por natureza, o input não possui a propriedade ngModel mesmo.

Você precisa importar o FormsModule em algum módulo que esteja sendo usado pelo seu componente. Por exemplo, app.module.ts.

import { FormsModule } from '@angular/forms';

[...]

@NgModule({
  imports: [
    [...]
    FormsModule
  ],
  [...]
})