我有一个数组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)中的等效代码是什么?
答案 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
循环。然后输出所需项目的每个属性(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 website)
<%
'Scriptlet'标签,用于控制流,无输出<%_
“空白吸引” Scriptlet标记,在其之前去除所有空白<%=
将值输出到模板中(已转义HTML)<%-
将未转义的值输出到模板中<%#
注释标记,不执行,不输出<%%
输出文字'<%'%>
普通结束标记-%>
修剪模式('newline slurp')标签,在换行符之后进行修剪_%>
“空白空格”结束标记,删除其后的所有空白