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

У меня есть массив 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 Ответ

0 голосов
/ 28 декабря 2018

Что-то вроде следующего - это тот же код в 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', для потока управления, нетoutput
  • <%_ Тег сценария «Пробел с пробелами», удаляет все пробелы перед ним
  • <%= Выводит значение в шаблон (HTML экранированный)
  • <%-Выводит неэкранированное значение в шаблон
  • <%# Тег комментария, без выполнения, без вывода
  • <%% Вывод литерала '<%' </li>
  • %> Обычныйконечный тег
  • -%> тег Trim-mode ('newline slurp'), обрезается после новой строки
  • _%> конечный тег 'Whitespace Slurping', удаляет все пробелы после него
...