Express / EJS-如果是渲染的特定视图文件,则可以执行某些操作

时间:2019-04-19 15:31:42

标签: 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
});
...

有出口。包裹着它的东西,不确定那是否有意义

1 个答案:

答案 0 :(得分:0)

其他情况是您缺少某些东西。确保您将注册:从后端的true / false布尔值传递给视图。

res.render("main-template", {
    signup: true/false
});

然后在您的html中,您需要执行此操作-确保使用<%-

<% if(signup){ %>
   <%- include('includes/signup-nav.html'); %>
 <% } else { %>  
   <%- include('includes/nav.html'); %>
<% } %>