如何解决在ejs模板中切换条件语句分号错误
我尝试在ejs模板中切换条件,但出现错误
这是我的代码:
<% switch(check) {%>
<% case check == 'like' : %>
<button href="#<%=item._id%>" id="like" class="recommendation good open-recommendation-form">
<span class="icon-like"></span>
</button>
<button href="#<%=item._id%>" id="dislike" class="recommendation bad hoverable open-recommendation-form">
<span class="icon-dislike"></span>
</button>
<%break%>
<% case check == 'dislike' : %>
<button href="#<%=item._id%>" id="like" class="recommendation good hoverable open-recommendation-form">
<span class="icon-like"></span>
</button>
<button href="#<%=item._id%>" id="dislike" class="recommendation bad open-recommendation-form">
<span class="icon-dislike"></span>
</button>
<%break%>
<% default : %>
<button href="#<%=item._id%>" id="like" class="recommendation good hoverable open-recommendation-form">
<span class="icon-like"></span>
</button>
<button href="#<%=item._id%>" id="dislike" class="recommendation bad hoverable open-recommendation-form">
<span class="icon-dislike"></span>
</button>
<%break%>
<%} %>
和我得到的错误:
SyntaxError:意外令牌';'在/Users/ismail/Desktop/expressjs-blank/views/dashboard/purchases.ejs中,同时编译ejs
If the above error is not helpful,you may want to try EJS-Lint:
https://github.com/RyanZim/EJS-Lint
Or,if you meant to create an async function,pass `async: true` as an option.
at new Function (<anonymous>)
at Template.compile (/Users/ismail/Desktop/expressjs-blank/node_modules/ejs/lib/ejs.js:632:12)
at Object.compile (/Users/ismail/Desktop/expressjs-blank/node_modules/ejs/lib/ejs.js:368:16)
at handleCache (/Users/ismail/Desktop/expressjs-blank/node_modules/ejs/lib/ejs.js:216:18)
at tryHandleCache (/Users/ismail/Desktop/expressjs-blank/node_modules/ejs/lib/ejs.js:255:16)
at View.exports.renderFile [as engine] (/Users/ismail/Desktop/expressjs-blank/node_modules/ejs/lib/ejs.js:461:10)
at View.render (/Users/ismail/Desktop/expressjs-blank/node_modules/express/lib/view.js:135:8)
at tryRender (/Users/ismail/Desktop/expressjs-blank/node_modules/express/lib/application.js:640:10)
at Function.render (/Users/ismail/Desktop/expressjs-blank/node_modules/express/lib/application.js:592:3)
at ServerResponse.render (/Users/ismail/Desktop/expressjs-blank/node_modules/express/lib/response.js:1012:7)
解决方法
将switch/case
语句更改为以下内容应该可以解决此问题(简化版,其中只有一个case
):
<% switch(check) {
case 'like' : %>
<button href="#<%= item._id %>" id="like" class="recommendation good open-recommendation-form">
<span class="icon-like">TEST</span>
</button>
<% break;
}
%>
使用以下内容呈现页面绝对可以:
res.render('name-of-ejs-template',{item: {_id: "https://www.stackoverflow.com"},check: 'like'});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。