2016-03-19 2 views
0

Я пытаюсь группировать коллекцию по дате в Meteor, используя функцию _.groupBy от Underscore.Как перебрать следующую структуру в Meteor Spacebars?

Вот пример кода, который выводит:

"Mon Dec 07 2015 00:00:00 GMT+0000 (GMT)":[ 
    { 
    "_id":"q9TMi9ZyoRjmddzfY", 
    "title":"New event", 
    "type":"collectif", 
    "product":"passeport", 
    "date":"2015-12-07T00:00:00.000Z", 
    "start":"2015-12-07T08:00:00.000Z", 
    "end":"2015-12-07T09:00:00.000Z", 
    "teachers":[ 

    ], 
    "clients":[ 
     { 
      "clientId":"M4DDCGWGMzX7bJRHa", 
      "manual":"true" 
     } 
    ], 
    "clientLimit":99 
    } 
], 
"Tue Dec 08 2015 00:00:00 GMT+0000 (GMT)":[ 
    { 
    "_id":"Jbchuc58zWDyEqnQZ", 
    "title":"New event", 
    "type":"collectif", 
    "product":"passeport", 
    "date":"2015-12-08T00:00:00.000Z", 
    "start":"2015-12-08T08:30:00.000Z", 
    "end":"2015-12-08T09:30:00.000Z", 
    "teachers":[ 

    ], 
    "clients":[ 

    ], 
    "clientLimit":15 
    }, 
    { 
    "_id":"EsqygwCCPucGhx9nP", 
    "title":"New event", 
    "type":"collectif", 
    "product":"passeport", 
    "date":"2015-12-08T00:00:00.000Z", 
    "start":"2015-12-08T09:30:00.000Z", 
    "end":"2015-12-08T10:30:00.000Z", 
    "teachers":[ 
     "eLExMRh3TT5eYWpki", 
     "wxFjH39M9kuBTv4zN" 
    ], 
    "clients":[ 

    ], 
    "clientLimit":10 
    } 
] 
} 

Проблема заключается в том, что я не совсем уверен, как я может выводить их на переднем конце. Должен ли я каким-то образом преобразовывать его в обычные массивы или курсор? Или может быть другой способ группировки коллекции по дате?

Я ищу выводить что-то вроде следующего:

Saturday 21st September 
- Item 1 
- Item 2 

Tuesday 24th September 
- Item 3 

Спасибо за любые идеи.

ответ

1

Это, как я хотел бы сделать это:

loops.html

{{#each arrayify data}} 
    {{name}} <br> 
    <ul> 
    {{#each value}} 
     <li>ClientLimit: {{this.clientLimit}}</li> 
    {{/each}} 
    </ul> 
{{/each}} 

loops.js

Template.registerHelper('arrayify',function(obj){ 
    result = []; 
    for (var key in obj) result.push({name:key,value:obj[key]}); 
    return result; 
    }); 

Template.hello.helpers({ 

data: function() { 
     return { 
     "Mon Dec 07 2015 00:00:00 GMT+0000 (GMT)":[ 
      { 
      "_id":"q9TMi9ZyoRjmddzfY", 
      "title":"New event", 
      "type":"collectif", 
      "product":"passeport", 
      "date":"2015-12-07T00:00:00.000Z", 
      "start":"2015-12-07T08:00:00.000Z", 
      "end":"2015-12-07T09:00:00.000Z", 
      "teachers":[ 

      ], 
      "clients":[ 
       { 
       "clientId":"M4DDCGWGMzX7bJRHa", 
       "manual":"true" 
       } 
      ], 
      "clientLimit":99 
      } 
     ], 
     "Tue Dec 08 2015 00:00:00 GMT+0000 (GMT)":[ 
      { 
      "_id":"Jbchuc58zWDyEqnQZ", 
      "title":"New event", 
      "type":"collectif", 
      "product":"passeport", 
      "date":"2015-12-08T00:00:00.000Z", 
      "start":"2015-12-08T08:30:00.000Z", 
      "end":"2015-12-08T09:30:00.000Z", 
      "teachers":[ 

      ], 
      "clients":[ 

      ], 
      "clientLimit":15 
      }, 
      { 
      "_id":"EsqygwCCPucGhx9nP", 
      "title":"New event", 
      "type":"collectif", 
      "product":"passeport", 
      "date":"2015-12-08T00:00:00.000Z", 
      "start":"2015-12-08T09:30:00.000Z", 
      "end":"2015-12-08T10:30:00.000Z", 
      "teachers":[ 
       "eLExMRh3TT5eYWpki", 
       "wxFjH39M9kuBTv4zN" 
      ], 
      "clients":[ 

      ], 
      "clientLimit":10 
      } 
     ] 
     } 
}); 
+0

Это фантастика! Большое спасибо, что работает отлично, просто пытаясь понять, что происходит! –

+0

Это здорово! Рад, что это сработало – zbot

+0

Вы могли бы отметить, как ответили. благодаря! – zbot

Смежные вопросы