如何跟踪2个嵌套ng-repeats中的累积索引

时间:2014-01-03 08:31:58

标签: javascript angularjs

在指令视图中,我有两个ng重复。 该指令构建一个表,每个表单元的数据来自另一个数据源。 此数据源需要两个中继器的累积索引。

selectedKandidaat.AntwoordenLijst[$index].Value

我只有当前的$ index或$ parent。$ index。因此,为了跟踪我想在Antwoordenlijst [ $ index ]中使用的整体索引,我需要跟踪索引变量。我可以在视图中使用create和update索引变量吗。

这样的事情:

..
  {{ totalIndex = 0 }}
  <tr ng-repeat="opgave in opgaven">
    <td ng-repeat="item in opgave.Items">
    {{ totalIndex += 1 }}
..

实际代码

<table class="table">
    <tr ng-repeat="opgave in opgaven">
        <td ng-repeat="item in opgave.Items">
            <select ng-model="selectedKandidaat.AntwoordenLijst[$index].Value"
                    ng-options="alternatief for alternatief in item.Alternatieven">           
            </select>
        </td>
    </tr>
</table>

1 个答案:

答案 0 :(得分:3)

每个ng-repeat都会创建自己的范围,因此要查找父范围内需要计数的总计数。

<div ng-repeat="a in items1">
    parent: {{$index}}
    <div ng-repeat="b in items2" itemcell>
        child: {{$index}}
        total: {{totalCount}}
    </div>
</div>
total: {{totalCount}}

和新itemcell derective

中的计数器
    app.directives
    .directive('itemcell', function () {
        return {
        restrict: 'A',
            link: function ($scope, iElement, iAttrs) { 
                if (!$scope.$parent.$parent.totalCount) {
                $scope.$parent.$parent.totalCount = 0;
            }
            $scope.$parent.$parent.totalCount++;
        }
    }
    })

您也可以尝试通过$ parent。$ index计算当前索引,但只有当您拥有具有相同项目数的集合时,它才有效。