【问题标题】:Multiple iterations by index inside nested ngFor loop在嵌套的 ngFor 循环中按索引进行多次迭代
【发布时间】:2018-10-01 10:24:37
【问题描述】:

我使用 trackByIndex 函数在 ngFor 循环中迭代项目:

trackByIndex(index: number, obj: any): any {
  return index;
}

这是一个简短的示例,其中包含我想要如何使用它的代码:

<div *ngFor="let comment of comments; let i = index; trackBy: trackByIndex">
  {{ i, comment.text }}
  <div *ngFor="let answer of comment.answers; let j = index; trackBy: trackByIndex">{{ j, answer.text }}</div>
</div>

但是当我的页面上有 2 个 comment 项目时,我在每条评论中都有相同迭代的答案:

"comment 1": {
    "answer 1",
    "answer 2"
},
"comment 2": {
    "answer 1", // should be answer 3
    "answer 2" // should be answer 4
}

我该如何解决这个问题?非常感谢您提供的任何提示。

【问题讨论】:

  • 你解决过这个问题吗?我也有同样的问题。

标签: javascript angular typescript ngfor


【解决方案1】:

我想,你错过了 ngFor 的绑定

尝试使用

<div *ngFor="let comment of comments; let i = index; trackBy: trackByIndex">
  {{ i, comment.text }}
  <div *ngFor="let answer of comment.answers; let j = index; trackBy: trackByIndex">{{ j, answer.text }}</div>
</div>

【讨论】:

  • 我看不出与我写的问题有什么不同
  • 您写的 cmets.answers,但应该是 comment.answers;
  • cmets 是数组,不能这样写 cmets.answers
  • 是的,我的错。在真正的代码中我做对了。问题不在于这个。
猜你喜欢
  • 2018-02-10
  • 2020-07-12
  • 2017-07-03
  • 1970-01-01
  • 2014-10-22
  • 2021-11-01
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
相关资源
最近更新 更多