在html中执行ngFor会使对象数组中的对象ID不确定

时间:2018-07-18 09:01:18

标签: angular typescript ionic-framework ionic3 angular-ng-if

我正在使用ionic框架开发移动应用程序,我有一个获取交易数据的api调用,而且我必须在我的html模板中列出交易:

api返回的数据:

import java.awt.Polygon

fun Polygon.area(): Float {
    var sum = 0f
    for (i in 0 until npoints - 1) {
        sum += xpoints[i] * ypoints[i + 1] + ypoints[i] * xpoints[i + 1]
    }
    sum += xpoints[npoints - 1] * ypoints[0] + ypoints[npoints - 1] * xpoints[0]
    return sum / 2.0f
}

进行api调用的打字稿代码:

[
    {
        amount1:"100",
        buyer_email:null,
        buyer_name:"test",
        confirms_needed:2,
        created_at:"2018-07-09 07:56:33",
        id:8,
        invoice:null,
        currency1: "USD"
    },
    {
        amount1:"100",
        buyer_email:null,
        buyer_name:"test",
        confirms_needed:2,
        created_at:"2018-07-10 04:36:33",
        id:6,
        invoice:null,
        currency1: "USD"
    }
]

我正在通过在出口类下键入交易来初始化交易。

这就是我循环交易数据的方式。

 ionViewDidLoad() {
    this.transactionProvider.getTransactions()
    .subscribe((data:any)=>{
      this.transactions = data;
      console.log(this.transactions);
    },error=>{
      console.log(error);
    });
  }

现在的问题是,当我<div class="width-100p fl-left box-shadow border-radius-10 padd-tp-bt-10 mg-tp-20" *ngFor="let transaction of transactions"> <div (click)="saveTransactionClick(transaction)"> <img width="20" src="assets/imgs/currencies/icons/{{transaction.currency1}}.png"> <div class="fl-left mg-l-10"> <div class="f-size-12 width-100p fl-left">{{transaction.currency1}} text: {{transaction.id}} :tet</div> <div class="f-size-10 width-100p fl-left gray">{{transaction.created_at | date: 'yyyy-MM-dd'}}</div> <div class="f-size-10 width-100p fl-left gray">{{transaction.created_at | date: 'hh:mm:ss'}}</div> </div> </div> </div> 的ID未定义但其余数据正确时:ammount,buyer_name ...

如果我从html中删除ngFor,则ID将恢复正常。

我不知道为什么会发生这种情况,我也不知道如何解决 谢谢


更新

错误是使用ngIf错误方式

在我的html中,我有一个不知道的错误ngif console.log(this.transactions)更改为*ngIf="transaction.id = clickedTransactionId"“后效果很好

谢谢

1 个答案:

答案 0 :(得分:0)

前段时间我写了一个ngif,它分配ID而不是检查其值

*ngIf="transaction.id = clickedTransactionId"

将其更改为

*ngIf="transaction.id == clickedTransactionId"

一切正常,谢谢大家。