【发布时间】:2021-05-10 16:15:49
【问题描述】:
我正在尝试将一个对象发送到我的应用程序中所有 EJS 模板中都存在的侧边菜单。
大约有 10 个 EJS 模板由 10 个路由器端点呈现。以下是典型端点的样子:
router.get( "/example", ( req, res ) => {
res.render( "../views/example.ejs" );
} );
在所有模板中,我有 3 个 include 部分:header, footer and aside menu。
典型的模板如下所示:
<%- include ("./partials/header") %>
// some body content
<%- include ("./partials/asidemenu") %>
<%- include ("./partials/footer") %>
我在文件系统中有这个数组,它由我需要在asidemenu 模板中传递的数据对象组成。
到目前为止我尝试了什么:
我在端点中获取数据并将其作为第二个参数放入res.render:
{ data: data }
我可以使用<%= data %> 访问相应EJS 模板中的数据,我将include partials 作为第二个参数:
<%- include ("./partials/asidemenu", { data: <%= data %> }) %>.
然后在asidemenu.ejs,我尝试以<%= data %> 访问数据,但我得到data is undefined。
我在这里做错了什么?
【问题讨论】:
-
sidemenu 模板长什么样?
-
还要检查数据变量是否为空
-
这是一个简单的模板。我想通过使用
<%= data[0].name %>来使用data数组中第一个对象的属性值。 -
数据变量不为空,因为它正在端点中获取。
标签: javascript node.js express ejs