#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}}