我可以将条件语句与 EJS 模板(在 JMVC 中)一起使用吗?
如果是,语法是什么? 我的目标是当有多个评论时在“评论”一词前添加一个“s”。在 JMVC 应用程序的 jQuery.ejs 模板中。以下中断。我找不到任何条件文档...
<%=commentsNumber%> comment<% if (commentsNumber > 1) { %> s <% } %>
and if yes, what is the syntax?
My goal is to prepend an 's' to the word 'comment' when there is more than one. in an jQuery.ejs template in a JMVC app. The following breaks. I can't find any docs for conditionals...
<%=commentsNumber%> comment<% if (commentsNumber > 1) { %> s <% } %>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
如果条件结构正确,则条件会起作用,我遇到了这个问题并解决了。
对于条件语句,
else
之前的标记必须与前面的if
的结束标记配对,否则语句将单独计算并产生错误。错误!
正确的
希望这有帮助。
Conditionals work if they're structured correctly, I ran into this issue and figured it out.
For conditionals, the tag before
else
has to be paired with the end tag of the previousif
otherwise the statements will evaluate separately and produce an error.ERROR!
Correct
hope this helped.
对于其他偶然发现这一点的人,您还可以在条件语句中使用 ejs params/props:
recipes.js 文件:
recipes.ejs 文件:
For others that stumble on this, you can also use ejs params/props in conditional statements:
recipes.js File:
recipes.ejs File:
是的,您可以在 EJS 中使用条件语句,例如 if else 、三元运算符甚至 switch case ,
例如
三元运算符 :
<%- 角色 == '管理员' ? '超级管理员':角色=='子管理员'? '子管理员':角色 %>
切换大小写
Yes , You can use conditional statement with EJS like if else , ternary operator or even switch case also
For Example
Ternary operator :
<%- role == 'Admin' ? 'Super Admin' : role == 'subAdmin' ? 'Sub Admin' : role %>
Switch Case
EJS 的行为似乎有所不同,具体取决于您是否使用 { } 表示法:
我已经检查过,并且按照您的预期评估了以下条件:
而这个则没有:
EJS seems to behave differently depending on whether you use { } notation or not:
I have checked and the following condition is evaluated as you would expect:
while this one doesn't:
您还可以使用
else if
语法:You can also use
else if
syntax:我知道这是一个有点晚的答案,
您可以在ejs中使用if和else语句,如下所示
但是我想强调的另一件事是,如果您以这种方式使用代码,
它将产生错误。
希望这对某人有帮助
I know this is a little late answer,
you can use if and else statements in ejs as follows
But there is another thing I want to emphasize is that if you use the code this way,
It will produce an error.
Hope this will help to someone
一个简单且通用的规则
例如,要将 javascript(for 循环)嵌入到我们的 ejs 模板中,我们可以遵循以下规则:
首先按照通常在 javascript 中编写的方式在 ejs 模板中编写 javascript 代码。
将 <% 放在开头,%>在每个纯 JavaScript 行的末尾。
例如:
所以现在我们必须将 ejs 语法放在每一行中:
one simple and general rule
for embedding javascript for example (for loops) into our ejs template we can follow the following rule:
first write your javascript code in the ejs template as you normally write in the javascript.
put the <% in the start and %> in the end of every pure javascript line.
for example:
so now we have to put the ejs syntax in every line :
只需缩短代码即可使用 ES6 功能。相同的东西可以写成
并且 Templateate 可以渲染为相同!
Just making code shorter you can use ES6 features. The same things can be written as
And the Templeate can be render as the same!