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

Como pegar atributo do html pra ts sem usar reative form?

Tenho no html:

<ng-container matColumnDef="txId">
          <th mat-header-cell *matHeaderCellDef mat-sort-header>Txid do depósito</th>
          <td mat-cell *matCellDef="let reprocessedDeposit" id="txId" name="txId" class="txId"> {{reprocessedDeposit?.txId}} </td>
        </ng-container>

que preciso colocar num metodo no ts pra enviar pra um service:

public tracking(): void {
      const deposit =  {
        txId: document.getElementById('txId').textContent,
        currency: 'BTC'
      };
  this.service.tracking(deposit).subscribe(
//...
  )
}
//...

Não posso criar um form usando reactive form, pois o html é um grid que retorna os dados da api. E da forma que estou pegando com document.getElementById sempre so pega a primeira linha de txid.

3 respostas

Fala aí Filipe, tudo bem? Não entendi, é uma dúvida ou você está sugerindo essa maneira de pegar o valor no HTML?

Fico no aguardo.

solução!

Então Matheus eu consegui fazer...na verdade o que quis dizer foi como passar os valores da grid html para meu component.ts sem usar formGroup ou reactive form. Segue como ficou:

<table mat-table [dataSource]="generic.dataSource">
        <ng-container matColumnDef="txId">
          <th mat-header-cell *matHeaderCellDef>Txid do depósito</th>
          <td mat-cell *matCellDef="let reprocessedDeposit" id="txId"> {{reprocessedDeposit?.txId}} </td>
        </ng-container>
</table>

component.ts:

public tracking(reprocessedDeposit: ReprocessedDeposit = new ReprocessedDeposit()) {
      const deposit =  {
        txId: reprocessedDeposit.txId,
        currency: 'BTC'
      };
    this.generic.startLoad();
    this.service.tracking(deposit).subscribe(
    //...
 });
  }

apenas passar o parametro no metodo resolveu meu problema.

Entendi, havia entendi errado então.

Fico feliz que tenha conseguido resolver o problema.

Sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.