2017-01-04 6 views
0

У меня есть следующие данные, в которых я хранить каждую дату записиКак подтолкнуть те же документы в верхнем массиве в angularjs

 { 
     "attendances": [ 
     { 
      "_id": "586bb4cf5ab55f517ca4304b", 
      "course": { 
      "_id": "586645636ce1252f20ba1ad6", 
      "name": "Robotics" 
      }, 
      "date":"22/11/2016", 
      "ispresent": "Yes", 
     }, 
     { 
      "_id": "586bafe95ab55f517ca43048", 
      "course": { 
      "_id": "586645636ce1252f20ba1ad6", 
      "name": "Robotics" 
      }, 
     "date":"21/11/2016", 
      "ispresent": "Yes", 
     }, 
{ 
      "_id": "586bafe95ab55f517ca43048", 
      "course": { 
      "_id": "586645636ce1252f20ba1ad6", 
      "name": "Statistics" 
      }, 
     "date":"21/11/2016", 
      "ispresent": "Yes", 
     }, 
     { 
      "_id": "586bafe95ab55f517ca43048", 
      "course": { 
      "_id": "586645636ce1252f20ba1ad6", 
      "name": "Statistics" 
      }, 
     "date":"21/11/2016", 
      "ispresent": "Yes", 
     } 
     ], 
    } 

Я хочу, чтобы выходной сигнал следующим образом в таблице

 Robotics yes yes 
     Statistics No yes 

У меня есть каждая запись для каждого курса с каждой датой. Может кто-нибудь мне помочь.

ответ

1

Вы можете сделать это, добавив фильтр groupBy, например, фильтр углового фильтра lib https://github.com/a8m/angular-filter, который будет группировать ваши объекты на основе свойства name.

И тогда ваш HTML будет выглядеть как-то вроде этого:

<div ng-repeat="(key,value) in attendances | groupBy: 'course.name'"> 
    {{key}} - <span ng-repeat="item in value">{{item.ispresent}}</span> 
</div> 

найти эту рабочую Sample: https://plnkr.co/edit/KVVK1A0QJ7VF7DbXZGi5?p=preview

0

Давайте представим себе, что данные хранятся внутри контроллера в переменной DATA.

В шаблоне, просто сделать:

<table> 
    <tr ng-repeat="d in DATA"> 
    <td>{{d.course.name}}</td> 
    <td>{{ d.ispresent ? d.ispresent : 'no'}}</td> 
    <tr> 
</table> 

Это будет отображаться, если не ispresent свойство не существует.