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

Não recebe valor do input

Faala pessoal, tudo bem?

Estou com o mesmo problema da nossa amiga Elisangela Conceicao Dos Santos, inclusive tentei solucionar pelo que o Diego disse mas não rolou, acredito que seja um problema de versão, alguem sabe dizer como solucionar? ainda não optei por voltar a versão pra caso alguem tenha achado o problema.

O tsconfig esta assim: { "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "downlevelIteration": true, "experimentalDecorators": true, "moduleResolution": "node", "importHelpers": true, "target": "es2017", "module": "es2020", "lib": [ "es2020", "dom" ] } }

app.component html

<app-nova-transferencia (aoTransferir)="transferir($event)"></app-nova-transferencia>

<p>Valor: {{ valor }}</p>
<p>Destino: {{ destino }}</p>

app.component ts

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

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  title = 'bytebank';
  destino: number;
  valor: number;

  transferir($event){
    console.log($event)
    this.destino = $event.destino;
    this.valor = $event.valor;
  }
}

nova-transferencia.component ts

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

@Component({
  selector: 'app-nova-transferencia',
  templateUrl: './nova-transferencia.component.html',
  styleUrls: ['./nova-transferencia.component.scss'],
})
export class NovaTransferenciaComponent {
  @Output() aoTransferir = new EventEmitter<any>();

  valor: number;
  destino: number;

  transferir() {
    console.log('Solicitado nova transferencia');

    const valorEmitir = {valor: this.valor, destino: this.destino};
    this.aoTransferir.emit({valorEmitir});
    this.limparCampos();
  }

  limparCampos() {
    this.valor = 0;
    this.destino = 0;
  }
}

3 respostas

Rubens, boa tarde Qual a mensagem está mostrando no console do navegador? Pois fiz teste com esse código acima e está rodando sem bugs.

Olá Rubens, tudo bom?

No método transferir, quando chama a função emit para emitir os dados de transferência, esses dados são passados como parâmetro dentro de chaves, quando na verdade não precisa das chaves.

  transferir() {
    console.log('Solicitado nova transferencia');

    const valorEmitir = {valor: this.valor, destino: this.destino};
    this.aoTransferir.emit(valorEmitir);
    this.limparCampos();
  }

Abraço, bons estudos.

solução!

Olá Pessoal, obrigado pela ajuda, acredito que tenha sido algo relacionado ao hot reload ou cache mesmo pois hoje quando retomei os estudos funcionou corretamente @Diego fiz a alteração que me indicou também.