如何将EJS标签放在另一个标签中

时间:2017-03-11 03:34:20

标签: node.js express ejs

我使用EJS作为我的模板引擎。我将变量从节点js传递给ejs,如...

router.get("/AdminDatabase", function(req, res) {
    res.render('Pages/AdminDatabase', {title: 'WebFormsAdmin', role: 'System Admin' });
  });

我正在构建一个角色基础控件,为此我想根据用户的角色更改页面的标题。

<% include ../partials/Common/header_<%= role %> %>

问题出在上述部分。如何将变量角色置于此EJS代码段中?

我的标题文件是

header_System Admin.ejs,

header_Survey Admin.ejs,

header_Survey Taker.ejs

1 个答案:

答案 0 :(得分:2)

解决方法是像这样进行条件渲染:

<% switch (role) {
  case 'System Admin': %>
    <% include ./partials/header_System_Admin %>
    <% break; %>
  <% case 'Survey Admin': %>
    <% include ./partials/header_Survey_Admin %>
    <% break; %>
  <% default: %>
    <% include ./partials/header_Survey_Taker %>
    <% break; %>
<% } %>

请注意,第一种情况必须与switch声明分组。确保部分路径正确。