ejs是否处理array.map(回调)? [英] Does EJS handle array.map(callback)?
本文介绍了ejs是否处理array.map(回调)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我将一个对象数组传递给一个ejs模板,我希望使用数组的常规.map()方法将其映射为链接。但是由于我不知道的原因,我传递给map()的回调在ejs中没有按照我预期的方式工作,并且我得到的结果是空的。
我的数据是一个对象数组,每个对象都有一个"节"和一个"名称"键。此数组作为"条目"传递给模板:siteHeaders = [ { section: "home", name: "Home"},
{ section: "about", name: "About Me"},
... plus few more ]
该模板如下所示,我将其放在一个名为(Shocket)template
的局部变量中:
<% entries = entries.map(function(elem) { -%>
<% return -%>
<a href="/<%= elem.section %>">
<%= elem.name %>
</a>
<% } ) -%>
<p><%- entries.join(" | ") %></p>
当我调用require('ejs').render(template, {entries: siteHeaders})
时,该模板的结果是:
<p> | | | | </p>
我不明白的是,当相应的map调用在repl中运行良好时,为什么这在ejs模板中不起作用:
> siteHeaders.map(function(e){ return '<a href="/' + e.section +'">' + e.name + '</a>' })
[ '<a href="/home">Home</a>',
'<a href="/guide">About Me</a>',
'<a href="/quickstart">Portfolio</a>',
'<a href="/reference">Blog</a>',
'<a href="/downloads">Contact</a>' ]
>
有什么线索吗?
推荐答案
此代码应该可以工作:
<% entries = entries.map(function(elem) {
return '<a href="/' + elem.section + '">' + elem.name + '</a>';
}) -%>
<p><%- entries.join(" | ") %></p>
您不能在函数内使用简单的html。只有在循环和条件下才有可能。
这篇关于ejs是否处理array.map(回调)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文