嵌套的ng-repeat用于创建具有不同数据的多个表

时间:2016-07-18 18:12:30

标签: javascript html angularjs

我有Json数据

[{"ID": "01000", "Name" : "Name1", "Age" : 25},
 {"ID": "01001", "Name" : "Name2", "Age" : 30},
 {"ID": "01001", "Name" : "Name3", "Age" : 23}]

并希望使用ng-repeat在多个表格中显示此数据。表应该看起来像这样

How the tables should look like

我创建了一个功能,可以将不同的ID定位到" $ scope.ID"变量

    $scope.ID = [];
    $scope.ID.push("1");
    var s = 0;
    for (var i = 0; i < $scope.Report.length; i++){

        if ($scope.ID[s] != $scope.Report[i].Id){
            $scope.ID.push($scope.Report[i].Id);                 
            s++;
        }            
    }

然后我试图以这种方式将数据显示到表中

    <div class="table" ng-repeat="id in ID" ng-model="query">

    <div class="row header">
      <div class="cell">
        ID
      </div>
      <div class="cell">
        NAME
      </div>
      <div class="cell">
        AGE
      </div>
    </div>

    <div class="row"  ng-repeat="r in Report | filter: query track by $index">
      <div class="cell">
        {{r.id}}
      </div>
      <div class="cell">
        {{r.name}}
      </div>
      <div class="cell">
       {{r.age}}
      </div>

    </div>
  </div>

脚本返回两个表,但每个表具有相同的三个值

What the tables actually look like

我需要每个生成的表都有自己的过滤器值,对于这种情况,第一个表应按ID:01000过滤,第二个表按ID:01001过滤。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

尝试:

<div class="row header">
  <div class="cell">
    ID
  </div>
  <div class="cell">
    NAME
  </div>
  <div class="cell">
    AGE
  </div>
</div>


<div class="row"  ng-repeat="r in Report | filter: {id: id}">
  <div class="cell">
    {{r.id}}
  </div>
  <div class="cell">
    {{r.name}}
  </div>
  <div class="cell">
   {{r.age}}
  </div>

</div>