【问题标题】:executing ngFor in html make the id of object in array of objects undefined在 html 中执行 ngFor 使对象数组中对象的 id 未定义
【发布时间】:2018-12-26 03:00:03
【问题描述】:

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

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"
    }
]

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

 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>

现在问题是当我console.log(this.transactions) id 未定义但其余数据正确时:ammount、buyer_name ...

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

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


更新

错误是使用 ngIf 的方式错误

在我的 html 中,我有一个我不知道的错误 ngif *ngIf="transaction.id = clickedTransactionId" 更改为 *ngIf="transaction.id == clickedTransactionId 时效果很好

谢谢

【问题讨论】:

  • 发布您的*ngfor 部分代码。
  • 我更新了问题
  • 交易中的 currency1 不存在。您的 JSON 没有逗号。
  • 不,这是 json 的一个小样本,数据太大,无法放在这里并且存在货币,我会修复它。
  • 您在}{ 之间仍然缺少一个逗号。你的代码对我有用。这是stackblitz

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


【解决方案1】:

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

*ngIf="transaction.id = clickedTransactionId"

改成

*ngIf="transaction.id == clickedTransactionId"

一切都按预期进行,谢谢大家。

【讨论】:

    猜你喜欢
    • 2016-08-03
    • 1970-01-01
    • 2019-02-19
    • 2019-06-14
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多