You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular嵌套*ngFor循环如何实现全局连续递增计数器

Angular 双层嵌套 *ngFor 全局连续计数器实现方案

你需要在 {{ }} 中填写以下表达式:

adjustments.slice(0, i).reduce((sum, curr) => sum + curr.blades.length, 0) + j + 1

原理说明

  • 外层循环的i是当前adjustment的索引,adjustments.slice(0, i)取到当前行之前的所有adjustment项
  • 通过reduce累加前面所有行的blades数组长度,得到当前行之前的全局计数总和
  • 加上内层循环当前索引j,再加1(适配从1开始计数的需求),即可得到连续的全局计数器值

性能优化建议

如果adjustments数据量较大,模板中直接执行reduce会在每次变更检测时重复计算,建议提前在组件TS代码中预处理数据,给每个blade项预分配全局序号:

// 组件TS代码中预处理逻辑
let count = 1;
this.adjustments.forEach(adjustment => {
  adjustment.blades = adjustment.blades.map(blade => {
    return { ...blade, globalIndex: count++ };
  })
})

预处理完成后,模板中直接写{{ blade.globalIndex }}即可,运行性能更高。

内容的提问来源于stack exchange,提问作者Varun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:39:03