MarkoJS для цикла по массиву объектов
Мне действительно нужна помощь с довольно простой и тривиальной проблемой, но здесь все в порядке. Я использую marko на стороне сервера в NodeJS и отображаю свои взгляды через:
ctx.render({
});
с коа-роутером и коа. Мне нужна помощь в html-отделе о том, как или во время перебора всех этих элементов отображать через:
<ul>
<li>
</li>
</ul>
Я пытался и пытался и пытался, но я слишком расстроен, чтобы двигаться дальше, пожалуйста, кто-нибудь, спасите меня, как будто в четверг мозг пердит! -_-
"invoices": [
{
"id": 1,
"customer_id": 1,
"line_items_total": 187,
"additional_fees": 10,
"tax_rate": 0.07,
"sub_total": 210.79
},
{
"id": 2,
"customer_id": 4,
"line_items_total": 100,
"additional_fees": 0,
"tax_rate": 0.07,
"sub_total": 107
},
{
"id": 3,
"customer_id": 2,
"line_items_total": 48.4,
"additional_fees": 0,
"tax_rate": 0.07,
"sub_total": 51.79
},
{
"id": 4,
"customer_id": 9,
"line_items_total": 286,
"additional_fees": 35,
"tax_rate": 0.07,
"sub_total": 343.47
}
]
Полный файл проекта находится по адресу: GitHub
Это под:
/routes/invoices/invoices.js
и запрос можно найти в:
/db/queries
что относится к:
queries.objects.getAllObjects()
в:
/routes/invoices/invoices.js
2 ответа
Вы правы, что можете зацикливать массивы, используя следующий синтаксис:
<ul>
<li for(invoice in data.invoices)>${invoice}</li>
</ul>
Marko также позволяет вам зацикливаться на свойствах объекта, если вам необходимо это сделать:
<ul>
<li for(invoice in data.invoices)>
<ul>
<li for(key,value in invoice)>
<strong>${key}</strong>: ${value}
</li>
</ul>
</li>
</ul>
Для справки: https://markojs.com/docs/core-tags/
LOL получил это, для тех, кто ссылается на это в будущем, довольно просто:
invoices.marko
файл, чтобы получить базовое понимание. Конечно, я мог бы:
${invoice.id}
${invoice.customer_id}
${invoice.line_items_total}
${etc}
перечислить каждый отдельный атрибут / свойство / значение требуемого ключа.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Invoices</title>
</head>
<body>
<ul>
<li for(invoice in data.invoices)>${invoice}</li>
</ul>
</body>