我可以使用条件语句与EJS模板(在JMVC中)?

如果是的话,语法是什么? 我的目标是在不止一个的时候给“评​​论”这个词添加一个“s”。 在JMVC应用程序的jQuery.ejs模板中。 下面的rest。 我找不到任何条件的文档…

<%=commentsNumber%> comment<% if (commentsNumber > 1) { %> s <% } %> 

对于那些偶然发现的问题,你也可以在条件语句中使用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 <% } %> 

如果条件结构正确,条件工作,我碰到这个问题,并计算出来。

对于条件, else之前的标签必须与前一个的结束标签配对,否则这些语句将单独评估并产生错误。

错误!

 <% if(true){ %> <h1>foo</h1> <% } %> <% else{ %> <h1>bar</h1> <% } %> 

正确

 <% if(true){ %> <h1>foo</h1> <% } else{ %> <h1>bar</h1> <% } %> 

希望这有助于。

EJS似乎行为有所不同,取决于您是否使用{}符号:

我已经检查并且按照您的预期评估以下条件:

 <%if (3==3) {%> TEXT PRINTED <%}%> <%if (3==4) {%> TEXT NOT PRINTED <%}%> 

而这一个不:

 <%if (3==3) %> TEXT PRINTED <% %> <%if (3==4) %> TEXT PRINTED <% %> 

else if语法,你也可以使用else if

 <% if (x === 1) { %> <p>Hello world!</p> <% } else if (x === 2) { %> <p>Hi earth!</p> <% } else { %> <p>Hey terra!</p> <% } %> 

是的,你可以使用条件语句与EJS一样,如果其他,三元操作符,甚至开关的情况下也

例如

三元运算符<%- role == 'Admin' ? 'Super Admin' : role == 'subAdmin' ? 'Sub Admin' : role %> <%- 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; } %>