und wenn ja, wie lautet die Syntax? Mein Ziel ist es, dem Wort "Kommentar" ein "s" voranzustellen, wenn es mehr als ein Wort gibt. in einer jQuery.ejs-Vorlage in einer JMVC-App. Die folgenden Pausen. Ich kann keine Dokumente für Bedingungen finden ...
<%=commentsNumber%> comment<% if (commentsNumber > 1) { %> s <% } %>
conditional-statements
ejs
Regis Zaleman
quelle
quelle
Antworten:
Für andere, die darüber stolpern, können Sie auch ejs params / props in bedingten Anweisungen verwenden:
rezepte.js Datei:
rezepte.ejs Datei:
quelle
include
Anweisung die bedingte Inline schreiben? Das Schreiben<% if (true) { include foo/bar } %>
scheint ein Fehler zu sein. Gibt es eine ähnliche Methode oder ist es notwendig, dieinclude
durch auszubrechen<% %>
.Bedingungen funktionieren, wenn sie richtig strukturiert sind. Ich bin auf dieses Problem gestoßen und habe es herausgefunden.
Für Bedingungen muss das
else
vorherige Tag mit dem End-Tag des vorherigen gekoppelt werden,if
andernfalls werden die Anweisungen separat ausgewertet und erzeugen einen Fehler.ERROR!
Richtig
hoffe das hat geholfen.
quelle
else
in eine andere Zeile stellte, wie den ersten von Ihnen erwähnten Codeblock. Vielen Dank für die Aufnahme dieser Beispiele!EJS scheint sich unterschiedlich zu verhalten, je nachdem, ob Sie die {} Notation verwenden oder nicht:
Ich habe geprüft und die folgende Bedingung wird wie erwartet bewertet:
während dieser nicht:
quelle
Ja, Sie können mit EJS eine bedingte Anweisung verwenden, z. B. einen ternären Operator oder sogar einen Groß- / Kleinschreibung
Beispielsweise
Ternärer Operator :
<%- role == 'Admin' ? 'Super Admin' : role == 'subAdmin' ? 'Sub Admin' : role %>
Schaltergehäuse
quelle
Sie können auch die
else if
Syntax verwenden:quelle
Ich weiß, das ist eine etwas späte Antwort.
Sie können if- und else-Anweisungen in ejs wie folgt verwenden
Aber es gibt noch eine andere Sache, die ich hervorheben möchte: Wenn Sie den Code auf diese Weise verwenden,
Es wird ein Fehler erzeugt.
Hoffe das wird jemandem helfen
quelle