确定ng-repeat元素的索引

时间:2015-10-24 15:57:57

标签: angularjs ng-repeat

我想知道在处理ng-repeat时是否有办法确定索引。

例如,我只希望第一个和第二个索引具有以下的锚标记:

<tbody>
    <tr ng-repeat="row in rows | orderBy:sort.type:sort.reverse | filter:searchData">
        <!-- only want to make the index 0 and 1 have an anchor -->
        <td ng-repeat="column in cols"><a href="#">{{row[column]}}</a></td>
    </tr>
</tbody>

我认为需要以下内容,但我无法弄清楚(或找到)正确的语法:

<!-- if index == 0 or 1, show anchor -->
<td ng-repeat="column in cols" ng-if="row[$index] <2"><a href="#">{{row[column]}}</a></td>

<!-- else, if index >= 2, don't show anchor -->
<td ng-repeat="column in cols" ng-if="row[$index] >=2">{{row[column]}}</td>

这是一个基本示例的小提琴:https://jsfiddle.net/zp2cqxqb/

感谢您对此提供任何帮助!

1 个答案:

答案 0 :(得分:2)

您对$ index本身感兴趣,而不是您正在检查的行[$ index]值。

作为奖励,如果您使用另一个内联元素(例如span)作为非锚定值,则可以避免双重重复语句:

 <tr ng-repeat="row in rows | orderBy:sort.type:sort.reverse | filter:searchData">
    <!-- only want to make the index 0 and 1 have an anchor -->
    <td ng-repeat="column in cols">
      <a ng-if="$index < 2" href="#">{{row[column]}}</a>
      <span ng-if="$index >= 2">{{row[column]}}</span>
    </td>
 </tr>

更新了小提琴:https://jsfiddle.net/z87ntjne/