Filtrar por fecha angularjs ng-repeat

publicado por: Anonymous

Tengo el siguiente array:

$scope.array = [
    {'fecha': "2017-01-01",
    "texto": "luis"},
    {'fecha': "2017-01-01",
    "texto": "jorge"},
    {'fecha': "2017-01-01",
    "texto": "daniel"},
    {'fecha': "2017-01-02",
    "texto": "pedro"},
    {'fecha': "2017-01-03",
    "texto": "crhis"},
    ];

el cual en mi vista html lo muestro de la siguiente manera:

<ul ng-repeat="i in array">
    <li>{{i.fecha}} {{i.texto}}</li>
 </ul>

pero el resultado de esto es:

2017-01-01 luis
2017-01-01 jorge
2017-01-01 daniel
2017-01-02 pedro
2017-01-03 crhis

Mi pregunta es como puedo filtrar por fecha, es decir que el resultado sea de la siguiente manera:

2017-01-01 -----> luis jorge daniel
2017-01-02 -----> pedro
2017-01-03 -----> crhis

en sí lo que quiero saber es cómo hacer el filtrado por fecha y que la fecha se muestre una sola vez juntos con sus datos.

solución

Podrias hacer uso del filtro groupBy angular-filter

Agregas la referencia a angular-filter.min.js y el modulo como explica el titulo Get Started

Luego veras el ejemplo groupBy resuelve exactamente lo que buscas

$scope.players = [
  {name: 'Gene', team: 'alpha'},
  {name: 'George', team: 'beta'},
  {name: 'Steve', team: 'gamma'},
  {name: 'Paula', team: 'beta'},
  {name: 'Scruath', team: 'gamma'}
];

<ul>
  <li ng-repeat="(key, value) in players | groupBy: 'team'">
    Group name: {{ key }}
    <ul>
      <li ng-repeat="player in value">
        player: {{ player.name }}
      </li>
    </ul>
  </li>
</ul>
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *