Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Problema em atualizar a view a partir do modelo

Estou tentando rendeizar uma mensagem de retorno após incluir dados na minha aplicação baseada no exemplo do treinamento, entretanto apesar de salvar os dados no banco, não atualiza a view.

Component:

cadastrar(event){
        event.preventDefault();

        this.http
            .post('http://localhost:3000/usuarios',JSON.stringify(this.usuario),{ headers: this.headers })
            .subscribe(res => {
                this.mensagem = 'Usuario Cadastrado com sucesso';
                this.usuario = new Usuario();
                console.log('cadastrado');
            }, err => console.log('ERRO NO ENVIO DE DADOS: ' + err));    
    }

view:

<div class="container form-layout">
  <h2>Cadastre-se</h2>

  <p *ngIf="mensagem.length" class="alert alert-info">{{mensagem}}</p>

  <form (submit)="cadastrar($event)">
    <div class="form-group">
      <label for="nome">Nome</label>
      <input name="nome" [(ngModel)]="usuario.nome" class="form-control">
    </div>
    <div class="form-group">
      <label for="sobrenome">Sobrenome</label>
      <input name="sobrenome" [(ngModel)]="usuario.sobrenome"class="form-control">
    </div>
    <div class="form-group">
      <label for="email">Email</label>
      <input name="email" [(ngModel)]="usuario.email"class="form-control">
    </div>
    <div class="form-group">
      <label for="senha">Senha</label>
      <input type="password" name="senha" [(ngModel)]="usuario.senha" class="form-control">
    </div>
    <button class="btn btn-primary">Cadastrar Usuário</button>
  </form>
</div>

OBS: Os dados do form são salvos no banco, mas NENHUMA MENSAGEM DE SUCESSO OU ERRO É APRESENTADA NO CONSOLE.

Alguma dica?? Se alguém puder dar uma luz, ficaria mto agradecido.

3 respostas

Bom dia Anderson!

O formulário é limpo?

solução!

Bom dia, Flávio. Na verdade o formulário não estava sendo limpo e depois descobri o porque.

O meu método "cadastrar", q está na minha app Angular está funcionando certinho, o problema é q no Listar, q fica na minha api Rest em node.js, há um método Listar no qual deveria ter definido um callback e não o fiz.

Sendo assim, ao executar:

this.http
            .post('http://localhost:3000/usuarios',JSON.stringify(this.usuario),{ headers: this.headers })

Nenhum retorno era obtido, impedindo a execução do subscribe. Uma curiosidade é q esperava que em casos com este, pelo menos o erro fosse disparado, mas pelo menos no meu teste, nada foi exibido no console uma vez q nada foi retornado.

De qq forma, obrigado pela atenção.

Anderson

Bom saber que descobriu!!! Sucesso e bom estudo meu aluno!