gpt4 book ai didi

node.js - EJS 是否处理 array.map(callback)?

转载 作者:搜寻专家 更新时间:2023-10-31 23:06:25 25 4
gpt4 key购买 nike

我正在将一个对象数组传递给一个 EJS 模板,我想使用数组的常规 .map() 方法将其映射到链接中。但是由于我无法弄清楚的原因,我传递给 map() 的回调在 EJS 中无法按照我期望的方式工作,而且我得到的结果是空的。

我的数据是一个对象数组,每个对象都有一个“部分”和一个“名称”键。该数组作为“条目”传递给模板:

siteHeaders = [ { section: "home", name: "Home"}, 
{ section: "about", name: "About Me"},
... plus few more ]

模板看起来像这样,我把它放在一个名为(惊喜)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>

我不明白为什么这在 EJS 模板中不起作用,而相应的映射调用在 REPL 中工作得很好:

> 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。只有在循环和条件下才有可能。

关于node.js - EJS 是否处理 array.map(callback)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com