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

如何在AngularJS light-grid(v0.3.1)中获取行索引?

获取light-grid 0.3.1的行索引解决方案

针对你使用的light-grid 0.3.1版本,有两种可靠的方式获取行索引,具体如下:

1. 使用Angular内置的$index变量(最直接)

light-grid 0.3.1基于AngularJS构建,<lg-row-start>指令本质上运行在Angular的ng-repeat上下文里,所以你可以直接用Angular内置的$index变量获取当前行的索引(从0开始计数)。

修改你的代码如下:

<tr lg-row-start>
  <td>
    <lg-view>
      <!-- 显示当前页内的行索引 -->
      行索引:{{ $index }}<br />
      {{ row.data.id }}<br />
      <input 
        ng-click="selectRow(row.data, $index)" 
        name="lg-grid-select-row[]" 
        value="{{row.data.id}}" 
        id="lg-grid-select-row{{row.data.id}}" 
        class="lg-grid-select-row" 
        type="checkbox" 
      />
    </lg-view>
  </td>
</tr>

这个方法不需要额外配置,直接就能拿到当前页内的行序号。

2. 获取全局数据集的行索引(如果开启分页)

如果你的grid开启了分页,$index只会返回当前页内的行序号(比如第二页的第一行$index是0)。如果你需要整个数据集里的全局索引,可以通过分页参数计算得到:

<tr lg-row-start>
  <td>
    <lg-view>
      <!-- 全局行索引:当前页起始位置 + 当前页内索引 -->
      全局索引:{{ (gridOptions.pagination.currentPage - 1) * gridOptions.pagination.pageSize + $index }}<br />
      {{ row.data.id }}<br />
      <input 
        ng-click="selectRow(row.data, (gridOptions.pagination.currentPage - 1) * gridOptions.pagination.pageSize + $index)" 
        name="lg-grid-select-row[]" 
        value="{{row.data.id}}" 
        id="lg-grid-select-row{{row.data.id}}" 
        class="lg-grid-select-row" 
        type="checkbox" 
      />
    </lg-view>
  </td>
</tr>

注意:这里假设你的gridOptions.pagination.currentPage是从1开始计数的,如果分页配置里currentPage从0开始,去掉公式里的-1即可。

关于你代码里的row.index

你原代码里尝试使用row.index,但在light-grid 0.3.1版本中,默认情况下row对象并没有暴露index属性,而是需要通过Angular的$index来获取。如果一定要从row对象上获取,你可以在grid的rowTemplate或者自定义指令里手动给row对象添加index属性,但这会增加额外代码,不如直接用$index高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:22:33