Série da semana: Primeiros passos no React

Veja mais

Angular 7 - component precisando de 2 cliques para atualizar no html

22/03/2019

4

Boa noite, estou tento problemas com o Angular, seguinte:
O ts.
getCpfClient(idcpf: String) {
 
    this.solicitation.content = idcpf;
    this.solicitation.user = this.loginuser.user.email;

    this.unicefService.getCpfClient(this.solicitation).subscribe(client => {
        this.client = client;
     
        if (this.client) {
          console.log("1"+this.client.name)
          this.dadosNulos = String(this.dadosNull(client));
          this.addressNulos = String(this.addressNull(client));
          this.contactNulos = String(this.contactNull(client));

          this.idcpf = this.client.cpf;
          this.client.address_type = this.replaceAdress(this.client.address_type);
          this.client.noemail = this.replaceNo(this.client.noemail);
          this.client.nomail = this.replaceNo(this.client.nomail);
          this.client.nosms = this.replaceNo(this.client.nosms);
          this.client.nowhatsapp = this.replaceNo(this.client.nowhatsapp);
          this.clientNulo = false;
          console.log("2"+this.client.name);
        } else {
          console.log("3"+this.client.name);
          this.clientNulo = true;
          this.errorMsgComponent.setError('Cliente não localizado na base de dados.');
        }
        console.log("4"+this.client.name);
  
      }, () => {
        console.log("5"+this.client.name);
        this.errorMsgComponent.setError('Falha ao buscar dados do cliente.'); this.clientNulo = true; this.b_unicefSelected = false;
         console.log("6"+this.client.name);
               });
         console.log("7"+this.client.name);      
  }


pedaço do html
 <div class="container-fluid row col-sm-10 mb-3 mb-md-0" style="margin-top:5px; margin-bottom:5px;">
          <mat-form-field>
            <input matInput [(ngModel)]="idcpf" value="idcpf" placeholder="CPF do cliente"
              id="idcpf" name="idcpf">
          </mat-form-field>
          <button style="margin-left: 8px; height: 50px;" mat-raised-button (click)="getCpfClient(idcpf)"
            color="primary" >Buscar</button>
            <button type="submit" style="margin-left: 8px; height: 50px;" mat-stroked-button
            color="primary" (click)="openNewClient()">Novo Cliente</button>
  
          <div style="font-size: larger" style="margin-left:15px;margin-top: 11px">
            <label > Cliente em atendimento: <b> {{client?.name}}</b></label>
          </div>
  
        </div>


A variável {{client.name}} da linha 12 só é alimentada quando eu clico duas vezes em buscar. E o engraçado é que no log, aparece nessa ordem, como se a última linha fosse a primeira a ser lida no método, e por isso o valor não aparece na tela, somente depois do 2 clique. Alguém sabe o motivo?

dados do console.log()
7undefined
1NomeCliente
2NomeCliente
4NomeCliente
Responder