web-dev-qa-db-fra.com

Puis-je utiliser des instructions conditionnelles avec des modèles EJS (en JMVC)?

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 <% } %>
84
Regis Zaleman

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
<% } %>
152
Jbird

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é.

144
stanzheng

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  <% %>  
20
Kristóf Aczél

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>
<% } %>
15
pzrq

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;

} %>
13
Om Sharma