用于遍历包含对象的数组的ejs代码

时间:2018-12-28 19:17:49

标签: handlebars.js embedded-javascript

我有一个数组items,其中包含一些对象,每个对象都有4个属性(_idtitleauthorcontent)。我想遍历数组中的每个对象并将其属性输出到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 :(得分:0)

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>
<% }); %>

基本上,我们在forEach数组上执行JavaScript items循环。然后输出所需项目的每个属性(titlecontentauthor_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 website

  • <%'Scriptlet'标签,用于控制流,无输出
  • <%_“空白吸引” Scriptlet标记,在其之前去除所有空白
  • <%=将值输出到模板中(已转义HTML)
  • <%-将未转义的值输出到模板中
  • <%#注释标记,不执行,不输出
  • <%%输出文字'<%'
  • %>普通结束标记
  • -%>修剪模式('newline slurp')标签,在换行符之后进行修剪
  • _%>“空白空格”结束标记,删除其后的所有空白