我希望在嵌套的ng-repeat中显示一个索引

时间:2016-04-07 21:40:21

标签: angularjs indexing ng-repeat

我想写:

文字文字

1 我的问题是真的

2 我的问题是真的

文字文字

3 我的问题是真的

4 我的问题是真的

5 我的问题是真的

文字文字

6 我的问题是真的

7 我的问题是真的

PathPatch

我用$ index + 1:1 2 1 2 3 1 2

进行测试

我用$ parent测试。$ index + 1:1 1 2 2 2 3 3

但我想1 2 3 4 5 6 7 ...

1 个答案:

答案 0 :(得分:2)

您可以向前传递前一个循环的length并将其添加到下一个$index。像这样:

<div ng-init="lastLength=[]">
      <span ng-repeat="step in steps" ng-init="lastLength[$index]=step.questions.length">
            <b>{{step.statement}}</b><br>
            <span ng-repeat="question in step.questions" style="padding-left:50px;">
                <b>{{lastLength[$parent.$index-1]+$index+1}}</b>  {{question.question}} {{question.response}}<br>
            </span>
      </span>
</div>

工作示例:

&#13;
&#13;
var app = angular.module('xApp', []).controller('xCtrl', function($scope) {
  $scope.steps = [{
    statement: 'St 1',
    questions: [{
      question: 'q 1',
      response: 'rs 1'
    }, {
      question: 'q 2',
      response: 'rs 2'
    }]
  }, {
    statement: 'St 2',
    questions: [{
      question: 'q 4',
      response: 'rs 4'
    }, {
      question: 'q 5',
      response: 'rs 5'
    }, {
      question: 'q 6',
      response: 'rs 6'
    }]
  }]
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="xApp" ng-controller="xCtrl" ng-init="lastLength=[]">
  <span ng-repeat="step in steps" ng-init="lastLength[$index]=step.questions.length">
        <b>{{step.statement}}</b><br>
        <span ng-repeat="question in step.questions" style="padding-left:50px;">
            <b>{{lastLength[$parent.$index-1]+$index+1}}</b>  {{question.question}} {{question.response}}<br>
        </span>
  </span>
</div>
&#13;
&#13;
&#13;