그렇다면 구문은 무엇입니까? 내 목표는 둘 이상의 댓글이있을 때 ‘댓글’이라는 단어 앞에 ‘s’를 추가하는 것입니다. JMVC 앱의 jQuery.ejs 템플릿에서. 다음 휴식. 조건부 문서를 찾을 수 없습니다 …
<%=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
합니다. 그렇지 않으면 문이 별도로 평가되고 오류가 발생합니다.
오류!
<% 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 <% %>
답변
예, if else, 삼항 연산자 또는 스위치 케이스와 같은 EJS와 함께 조건문을 사용할 수 있습니다.
예를 들어
삼항 연산자 :
<%- 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;
} %>
답변
else if
구문 을 사용할 수도 있습니다 .
<% if (x === 1) { %>
<p>Hello world!</p>
<% } else if (x === 2) { %>
<p>Hi earth!</p>
<% } else { %>
<p>Hey terra!</p>
<% } %>
답변
나는 이것이 조금 늦은 대답이라는 것을 알고 있습니다.
다음과 같이 ejs에서 if 및 else 문을 사용할 수 있습니다.
<% if (something) { %>
// Then do some operation
<% } else { %>
// Then do some operation
<% } %>
하지만 제가 강조하고 싶은 또 다른 점은 이런 식으로 코드를 사용하면
<% if (something) { %>
// Then do some operation
<% } %>
<% else { %>
// Then do some operation
<% } %>
오류가 발생합니다.
이것이 누군가에게 도움이되기를 바랍니다.