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>

Другие вопросы по тегам