【问题标题】:How to use a ternary operator to add a class to an HTML element in ejs如何使用三元运算符将类添加到 ejs 中的 HTML 元素
【发布时间】:2017-06-18 15:25:56
【问题描述】:

我是使用 ejs 的新手。我有一个菜单,我想突出显示当前的菜单项。 我试过这个:

<li class=<% currentMenu == 'dashboard' ? 'active' : ''%>>
    <a href= '/dashboard'>
       <i class="material-icons">dashboard</i>
       <span>Dashboard</span>
    </a>
</li>

currentMenu 的值由 express 路由器提供服务,如下所示:

app.get('/dashboard', function(req, res) {
  if (isAuthorised) {
    res.render('pages/index', {
      title: 'Welcome | MW Tracker',
      email, userName, role, menus,
      currentMenu: 'dashboard'
    })
  } else {
    res.render('pages/sign-in', {
      title: 'Sign In | MW Tracker'
    })
  }
});

请问我应该如何添加课程?

【问题讨论】:

    标签: javascript node.js template-engine ejs


    【解决方案1】:

    需要将&lt;% %&gt;标签替换为&lt;%= %&gt;标签才能输出表达式值:

    <li class="<%= currentMenu === 'dashboard' ? 'active' : '' %>">
      <!-- -->
    </li>
    

    正如EJS documentation 所述,&lt;% %&gt; 标签用于控制流,没有输出代码;而&lt;%= %&gt; 标签输出并将值插入到 HTML 模板中。

    例如,下面的if 语句使用&lt;% %&gt; 标记,因为该语句不需要输出到HTML。然后在条件内部,使用&lt;%= %&gt;标签将变量输出并插入到HTML模板中:&lt;%= currentMenu %&gt;

    <% if (currentMenu === 'dashboard') { %>
      <span><%= currentMenu %></span>
    <% } %>
    

    【讨论】:

      猜你喜欢
      • 2020-12-07
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 2019-07-05
      相关资源
      最近更新 更多