EJS-код для цикла по массиву, содержащему объекты

У меня есть массив items содержит несколько объектов, каждый из которых имеет 4 свойства (_id, title, author а также content). Я хочу перебрать каждый объект в массиве и вывести его свойства в файл ejs. Код руля (hbs) ниже, кажется, работает:

{{# each items }}
            <article class="item">
                <div>Title: {{ this.title }}</div>
                <div>Content: {{ this.content }}</div>
                <div>Author: {{ this.author }}</div>
                <div>ID: {{ this._id }}</div>
            </article>
{{/each}}

Каким будет эквивалентный код во встроенном javascript (ejs)?

1 ответ

Решение

Что-то вроде следующего - это тот же код в EJS, что и код Handlebars в исходном вопросе.

<% items.forEach(item => { %>
    <article class="item">
        <div>Title: <%= item.title %></div>
        <div>Content: <%= item.content %></div>
        <div>Author: <%= item.author %></div>
        <div>ID: <%= item._id %></div>
    </article>
<% }); %>

В основном мы делаем JavaScript forEach петля на items массив. Затем выводим каждое из свойств элемента, который вы хотите (title, content, author, а также _id).

Вы также можете сделать то же самое в for петля.

<% for (let i = 0; i < items.length; i++) { %>
    <article class="item">
        <div>Title: <%= items[i].title %></div>
        <div>Content: <%= items[i].content %></div>
        <div>Author: <%= items[i].author %></div>
        <div>ID: <%= items[i]._id %></div>
    </article>
<% } %>

Теги EJS (взяты с сайта EJS)

  • <% Тег 'Scriptlet', для потока управления, без вывода
  • <%_ Тэг Scriptlet 'Whitespace Slurping', удаляет все пробелы перед ним
  • <%= Выводит значение в шаблон (HTML экранированный)
  • <%- Выводит неэкранированное значение в шаблон
  • <%# Тег комментария, без выполнения, без вывода
  • <%% Выводит литерал '<%'
  • %> Простой конечный тег
  • -%> Тег Trim-mode ('newline slurp'), обрезает после новой строки
  • _%> Конечный тег 'Whitespace Slurping', удаляет все пробелы после него
Другие вопросы по тегам