node.js - Express/EJS - 如果它是渲染的特定视图文件,则执行某些操作
问题描述
我的看法是:
/views/signup.html
我想根据加载的视图在主布局模板中的页面上有不同的元素。
在我的主布局文件中,当呈现该特定视图时,我想要执行以下操作:
<% if (ecomHeader) { %>
<% include includes/signup-nav.html %>
<% } %>
<% else { %>
<% include includes/nav.html %>
<% } %>
这显然行不通
ReferenceError: ../views/layout.html:9
7| </head>
8| <body>
>> 9| <% if (ecomHeader) { %>
10| <% include includes/signup-nav.html %>
11| <% } else { %>
12| <% include includes/nav.html %>
你能做到吗?是这样的吗?
渲染代码:
...
let token = createCSRFToken(req);
let ecomHeader = true;
res.render('premium/signup', {
message: req.flash('signupMessage'),
token: token,
ecomHeader: true
});
...
有出口。包装这个的东西,不确定这是否相关
解决方案
你的其他条件是缺少某些东西。确保您将 signup: true/false boolean 从后端传递到您的视图。
res.render("main-template", {
signup: true/false
});
然后在您的 html 中,您需要执行此操作 - 确保使用<%-
.
<% if(signup){ %>
<%- include('includes/signup-nav.html'); %>
<% } else { %>
<%- include('includes/nav.html'); %>
<% } %>
推荐阅读
- asp.net-mvc - 从 ASP.NET Core MVC 项目提供 Angular SPA 时,我可以使用 OIDC 混合流吗?
- python - 使用 OneVsRestClassifier 的多类问题的概率总和不等于 1
- apache-nifi - 为什么 Nifi PutParquet 处理器会创建这么多任务?
- android - 想要为基本的 Android WebView 应用程序实现后退按钮功能
- kubernetes - curl: (7) 连接 192.168.99.100 端口 30790 失败:连接被拒绝
- c# - 我想在 tabPage 处于活动状态时更改它的背景
- android - 如果我在我的应用程序中添加 ACTION-VIEW,最终结果是什么?
- mysql - 我可以使用 Group By 计算多列吗?
- swift4.2 - 从两个不同的字典数组中删除公共值
- android - 以编程方式居中 CustomFontTextView