et si oui, quelle est la syntaxe? Mon objectif est d’ajouter un "s" au mot "commentaire" s’il ya plus d’un commentaire. dans un modèle jQuery.ejs dans une application JMVC. Les pauses suivantes. Je ne trouve pas de documentation pour les conditionnels ...
<%=commentsNumber%> comment<% if (commentsNumber > 1) { %> s <% } %>
Pour les autres qui tombent sur cela, vous pouvez également utiliser ejs params/props dans des instructions conditionnelles:
recipes.js Fichier:
app.get("/recipes", function(req, res) {
res.render("recipes.ejs", {
recipes: recipes
});
});
recipes.ejs Fichier:
<%if (recipes.length > 0) { %>
// Do something with more than 1 recipe
<% } %>
Les conditions fonctionnent si elles sont correctement structurées. J'ai rencontré ce problème et je l'ai compris.
Pour les conditions, la balise avant else
doit être appariée avec la balise de fin de la précédente if
, sinon les instructions seront évaluées séparément et produiront une erreur.
ERREUR!
<% if(true){ %>
<h1>foo</h1>
<% } %>
<% else{ %>
<h1>bar</h1>
<% } %>
Correct
<% if(true){ %>
<h1>foo</h1>
<% } else{ %>
<h1>bar</h1>
<% } %>
espérons que cela a aidé.
EJS semble se comporter différemment selon que vous utilisiez la notation {} ou non:
J'ai vérifié et la condition suivante est évaluée comme prévu:
<%if (3==3) {%> TEXT PRINTED <%}%>
<%if (3==4) {%> TEXT NOT PRINTED <%}%>
alors que celui-ci ne:
<%if (3==3) %> TEXT PRINTED <% %>
<%if (3==4) %> TEXT PRINTED <% %>
Vous pouvez aussi utiliser else if
syntaxe:
<% if (x === 1) { %>
<p>Hello world!</p>
<% } else if (x === 2) { %>
<p>Hi earth!</p>
<% } else { %>
<p>Hey terra!</p>
<% } %>
Oui, vous pouvez utiliser l'instruction conditionnelle avec EJS comme dans le cas contraire, l'opérateur ternaire ou même changer de casse
Par exemple
opérateur ternaire: <%- role == 'Admin' ? 'Super Admin' : role == 'subAdmin' ? 'Sub Admin' : role %>
Switch Case
<% switch (role) {
case 'Admin' : %>
Super Admin
<% break;
case 'eventAdmin' : %>
Event Admin
<% break;
case 'subAdmin' : %>
Sub Admin
<% break;
} %>