如果是,那么语法是什么? 我的目标是在有多个时,在'评论'这个词的前面添加's'。在JMVC应用程序的jQuery.ejs模板中。以下休息。我找不到条件的任何文档......
<%=commentsNumber%> comment<% if (commentsNumber > 1) { %> s <% } %>
答案 0 :(得分:145)
对于偶然发现此事的其他人,您还可以在条件语句中使用ejs params / props:
recipes.js文件:
app.get("/recipes", function(req, res) {
res.render("recipes.ejs", {
recipes: recipes
});
});
recipes.ejs文件:
<%if (recipes.length > 0) { %>
// Do something with more than 1 recipe
<% } %>
答案 1 :(得分:138)
如果条件结构正确,条件法就可以工作了,我遇到了这个问题并想出来了。
对于条件,else
之前的标记必须与之前if
的结束标记配对,否则语句将单独评估并产生错误。
ERROR!
<% if(true){ %>
<h1>foo</h1>
<% } %>
<% else{ %>
<h1>bar</h1>
<% } %>
正确
<% if(true){ %>
<h1>foo</h1>
<% } else{ %>
<h1>bar</h1>
<% } %>
希望这会有所帮助。
答案 2 :(得分:19)
EJS似乎表现不同,具体取决于您是否使用{}表示法:
我已经检查过,并按照您的预期评估以下条件:
<%if (3==3) {%> TEXT PRINTED <%}%>
<%if (3==4) {%> TEXT NOT PRINTED <%}%>
虽然这个没有:
<%if (3==3) %> TEXT PRINTED <% %>
<%if (3==4) %> TEXT PRINTED <% %>
答案 3 :(得分:14)
您还可以使用else if
语法:
<% if (x === 1) { %>
<p>Hello world!</p>
<% } else if (x === 2) { %>
<p>Hi earth!</p>
<% } else { %>
<p>Hey terra!</p>
<% } %>
答案 4 :(得分:11)
是的,您可以使用带有EJS的条件语句,如果是if,三元运算符甚至是switch case
例如
三元运营商:
<%- role == 'Admin' ? 'Super Admin' : role == 'subAdmin' ? 'Sub Admin' : role %>
切换案例
<% switch (role) {
case 'Admin' : %>
Super Admin
<% break;
case 'eventAdmin' : %>
Event Admin
<% break;
case 'subAdmin' : %>
Sub Admin
<% break;
} %>
答案 5 :(得分:0)
我知道这是一个有点晚的答案,
您可以按如下所示在ejs中使用if和else语句
<% if (something) { %>
// Then do some operation
<% } else { %>
// Then do some operation
<% } %>
但是我要强调的另一件事是,如果您以这种方式使用代码,
<% if (something) { %>
// Then do some operation
<% } %>
<% else { %>
// Then do some operation
<% } %>
它将产生错误。
希望这对某人有帮助
答案 6 :(得分:0)
只需缩短代码即可使用ES6功能。相同的东西可以写成
app.get("/recipes", (req, res) => {
res.render("recipes.ejs", {
recipes
});
});
Templeate可以被渲染为相同!
<%if (recipes.length > 0) { %>
// Do something with more than 1 recipe
<% } %>