cda*_*iga 5 javascript template-engine ejs node.js
我是新手使用ejs.有一个菜单,我想突出显示当前菜单项.我试过这个:
<li class=<% currentMenu == 'dashboard' ? 'active' : ''%>>
<a href= '/dashboard'>
<i class="material-icons">dashboard</i>
<span>Dashboard</span>
</a>
</li>
Run Code Online (Sandbox Code Playgroud)
currentMenu的值由快速路由器提供,如下所示:
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'
})
}
});
Run Code Online (Sandbox Code Playgroud)
请问我如何添加课程?
Jos*_*ier 13
您需要将<% %>标记替换为标记<%= %>才能输出表达式值:
<li class="<%= currentMenu === 'dashboard' ? 'active' : '' %>">
<!-- -->
</li>
Run Code Online (Sandbox Code Playgroud)
正如EJS文档所述,<% %>标签用于控制流,没有输出代码; 而<%= %>标签输出并将值插入HTML模板.
例如,if下面的语句使用<% %>标记,因为语句不需要输出到HTML中.然后在条件内部,使用<%= %>标签输出变量并将其插入到HTML模板中:<%= currentMenu %>.
<% if (currentMenu === 'dashboard') { %>
<span><%= currentMenu %></span>
<% } %>
Run Code Online (Sandbox Code Playgroud)