#javascript #node.js #pug
#javascript #node.js #pug
Вопрос:
у меня есть сгруппированный массив, который я хочу отобразить во внешнем интерфейсе через PUG, и это оказывается немного сложным
вот массив
{
"Apr 14th 19": {
"5:00 PM": [
{
"name": "John",
"message": "Hey there"
},
{
"name": "Josh",
"message": "Hey"
}
]
},
"Apr 15th 19": {
"5:00 PM": [
{
"name": "Jake",
"message": "Hey you"
}
]
}
}
вот мой код pug, который я пытаюсь использовать для рендеринга нужного мне шаблона (желаемый результат ниже)
each day in Data
each hour in day
each entry in hour
h2= "The date is" Object.keys(day)
h2= "The time is" Object.keys(hour)
h2= "The message is" entry.message
вид вывода шаблона, который я хочу
The date is Apr 14th 19
The time is 5:00 pm
The message is : Hey
The message is : Hey you
(Both messages here because those are 2 nested under under the times)
ничего из этого на самом деле не работает, мне действительно нужна помощь
Ответ №1:
Вы захотите сделать что-то в этом роде в своем шаблоне Pug:
each dayObj, day in Data
h2= "The date is " day
each hourObj, hour in dayObj
h2= "The time is " hour
each entry in hourObj
h2= "The message is : " entry.message
Вот рабочая ручка: https://codepen.io/chanceaclark/pen/JVpmMd
Комментарии:
1. работает отлично, хотя один вопрос — добавление Obj после ‘day’ дает доступ к самому ключу?
2. pugjs.org/language/iteration.html В примерах в разделе Итерации Pug показано, что значение является первым элементом, а индекс / ключ — второй переменной. Вы использовали только значение, которое было вложенным объектом, вместо индекса / ключа объекта. Я просто переименовал первую переменную и добавил индекс / ключ в качестве имени, которое у вас было.