在Angularjs {{$ index}}中,每次循环时只循环一次

时间:2018-04-17 12:42:42

标签: angularjs

在Angularjs {{$ index}} 循环中每次只有一次循环

$(function () {
  $('[data-toggle="popover"]').popover()
});

如何限制 enter image description here

2 个答案:

答案 0 :(得分:0)

尝试ng-repeat="data in value[0]"而不是ng-repeat

答案 1 :(得分:0)

没有简单的组合可以为您提供这样的索引(也称为计数器)。它可能看起来类似于如何使用Saldo final de caixa = Final cash balance公式(可能为[column + row * columns])将二维行和列编入索引。但是,您的{{$index + $parent.$index * reports[key].length}}可以具有任意数量的对象属性和数组。因此,您需要在控制器中使用手动计数器。

我提出了这个简单的事情:

reports

然后,只需在内部$scope.array = []; var counter = 0; for(key in $scope.reports){ // for every object var temp = []; // row array for(var j=0; j<$scope.reports[key].length; j++){ counter++; temp.push(counter); // column element (counter) } $scope.array.push(temp); }

中显示{{array[$parent.$index][$index]}}即可

这是一个演示:

ng-repeat
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.reports = {
    "My reports 1":[
        {"status":"status1"},
        {"status":"status2"},
        {"status":"status3"}
      ],
    "My reports 2":[
        {"status":"status1"},
        {"status":"status2"},
        {"status":"status3"},
        {"status":"status4"},
      ],
    "My reports 3":[
        {"status":"status1"},
        {"status":"status2"},
      ],
    "My reports 4":[
        {"status":"status1"},
        {"status":"status2"},
        {"status":"status3"},
      ]
  };

  $scope.array = [];
  var counter = 0;
  for (key in $scope.reports) { // for every object
    var temp = [];
    for (var j = 0; j < $scope.reports[key].length; j++) {
      counter++;
      temp.push(counter);
    }
    $scope.array.push(temp);
  }

});