javascript - 无法访问 EJS 模板中包含部分的对象
问题描述
我正在尝试将一个对象发送到我的应用程序中所有 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 }
我可以访问相应 EJS 模板中的数据,方法是使用它作为第二个参数<%= data %>
放入partials:include
<%- include ("./partials/asidemenu", { data: <%= data %> }) %>
.
然后在asidemenu.ejs
,我试图访问数据,<%= data %>
但我得到了data is undefined
。
我在这里做错了什么?
解决方案
将数据变量传递给包含时,您需要删除插值标记。
<%- include("./partials/asidemenu", { data: data }) %>
推荐阅读
- haskell - 语言设计:关于为什么分配的变量在算术表达式中返回错误答案的困惑
- php - HTML - 防止网络摄像头图像被缓存
- c# - 如何以结构化方式读取 .txt 文件?
- wxpython - wxPython StaticText 转义嵌套的 BoxSizer
- c# - 如何将 Json.NET 用于无模式 JSON?
- android - 浓缩咖啡意图验证:“匹配 0 个意图”,但“记录的意图”
- c# - 如何从 C++ UWP App 引用 C# UWP 类库
- javascript - 如何通过单击按钮删除 HTML 元素,然后再次添加它
- php - Symfony 如何获取内核/内核接口
- python - Python,Dask - 使用来自另一个模块的函数并映射到 Dask Dataframe