Angularjs 以角度显示JSON数组中的ng repeat数据

Angularjs 以角度显示JSON数组中的ng repeat数据,angularjs,arrays,json,Angularjs,Arrays,Json,您好,我有以下从服务返回的数据,我无法控制返回数据的方式: {"day_1":[{"classroom":"Nursery","count":0},{"classroom":"Junior Kindy","count":1}],"day_2":[{"classroom":"Nursery","count":4},{"classroom":"Junior Kindy","count":0}]} 但我需要以透视格式显示它,如下所示: classroom | day_1 | day_2 ==

您好,我有以下从服务返回的数据,我无法控制返回数据的方式:

{"day_1":[{"classroom":"Nursery","count":0},{"classroom":"Junior Kindy","count":1}],"day_2":[{"classroom":"Nursery","count":4},{"classroom":"Junior Kindy","count":0}]}
但我需要以透视格式显示它,如下所示:

classroom    | day_1  | day_2
============  ======== ======
Nursery      | 0      | 4
Junior Kindy | 1      | 0
这是控制器中的代码

$scope.rolls=[];

Rolls.getRollMarked().then(
    function(data){
        console.log(data.data);
        $scope.rolls = data.data;
    }
)
在视图中,我使用的是以下内容,但它不显示当天的任何计数,我不确定如何显示它。因此,请让我知道如何以上述格式显示它

   <table class="table table-bordered">
      <tr>
         <td>Classroom</td>
         <td>day_1</td>
         <td>day_2</td>
       </tr>
       <tr ng-repeat="roll in rolls">
          <td> 
            {{roll[$index]['classroom']}}
          </td>
          <td>
              {{roll.day_1}}
               </td>
               <td>
                   {{roll.day_2}}
               </td>
            </tr>
     </table>

教室
第一天
第二天
{{roll[$index]['CLASSORY']}
{{roll.day_1}}
{{roll.day_2}}

您需要转换数据
ng重复
,因为您已经设置了一个数组

使用一些简单的代码,你可以把它放到一个数组中,然后你的代码就可以正常工作了

此外,您应该更新您的html。您不需要使用$index引用项,因为在这种情况下,每个项都绑定到迭代器变量

<table class="table table-bordered">
  <tr>
     <th>Classroom</th>
     <th>day_1</th>
     <th>day_2</th>
   </tr>
   <tr ng-repeat="roll in rolls">
      <td> 
        {{roll.classroom}}
      </td>
      <td>
        {{roll.day_1}}
      </td>
      <td>
        {{roll.day_2}}
      </td>
   </tr>
</table>

教室
第一天
第二天
{{滚动教室}
{{roll.day_1}}
{{roll.day_2}}
然后调用convert函数将数据转换为数组。我在这里使用了,所以您要么需要引用它,要么使用自己的find方法

Rolls.getRollMarked().then(
    function(data){
        console.log(data.data);
        $scope.rolls = convert(data.data);
    }
)

function convert(json) {
    var rolls = [];
    var days = ['day_1', 'day_2'];
    for (var d = 0; d < days.length; ++d) {
      var day = days[d];
      for (var i = 0; i < json[day].length; ++i) {
        var classroom = json[day][i];
        var existing = _.find(rolls, { "classroom": classroom.classroom });
        if (!existing) {
          existing = { classroom: classroom.classroom };
          rolls.push(existing);
        }
        existing[day] = classroom.count;
      }
    }
    return rolls;
}
Rolls.getRollMarked()。然后(
功能(数据){
console.log(data.data);
$scope.rolls=转换(data.data);
}
)
函数转换(json){
var rolls=[];
风险值天数=[“第1天”、“第2天”];
对于(变量d=0;d
您的JSON数据无效谢谢,我不知道可以这样做+1用于查找。。。好极了