Руль — несколько объектов

#javascript #handlebars.js

Вопрос:

Это мой первый раз, когда я пробую руль. Почему-то я не могу получить массив в одном из объектов.

Это то, что я получаю в настоящее время:

Эрик Алан

Вот как я ожидаю, что результат будет таким:

Эрик 2019-01-01 Эрик Тип а Эрик 2019-12-31 Эрик Тип а Алан 2020-01-01 Алан Тип а

Ниже приведен рабочий код, но я не смог получить дату и тип из {{list_of_date}}:

 $(function() {
  var source = $("#document-template").html();
  var template = Handlebars.compile(source);
  var html = template(data);
  $('#DocumentResults').html(html);
});



var data = [{
  users: [{
    name: 'Eric',
    list_of_date: [{
      "2019-01-01": [{
        "id": "1",
        "type": "Eric Type a",
      }],
      "2019-12-31": [{
        "id": "2",
        "type": "Eric Type b",
      }]
    }],
  }, {
    name: 'Alan',
    list_of_date: [{
      "2020-01-01": [{
        "id": "1",
        "type": "Alan Type a",
      }]
    }],
  }]
}]; 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0/handlebars.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<div id="DocumentResults"></div>
<script id="document-template" type="text/x-handlebars-template">
  <div>
    {{#each this}} 
      {{#users}} 
        {{name}} 
      {{/users}} 
    
      {{#list_of_date}} 
        {{type}}
      {{/list_of_date}} 
      
    {{/each}}
  </div>
</script> 

Ответ №1:

Возможным решением было бы:

 {{#each this}} 
 {{#each users as | user |}} 
  {{user.name}} 
  {{#each user.list_of_date as | userDateItem |}}
   {{#each userDateItem as |toDisplay|}}
    {{@key}}
    {{toDisplay.[0].type}}
   {{/each}}
  {{/each}}
 {{/each}} 
{{/each}}