2011-11-21 12 views
63

और यदि हां, तो वाक्यविन्यास क्या है? मेरा लक्ष्य एक से अधिक होने पर 'टिप्पणी' शब्द में 'एस' को प्रीपेड करना है। एक जेएमवीसी ऐप में एक jQuery.ejs टेम्पलेट में। निम्नलिखित ब्रेक मैं सशर्त, के लिए कोई भी दस्तावेज़ नहीं मिल सकता है ...क्या मैं ईजेएस टेम्पलेट्स (जेएमवीसी में) के साथ सशर्त बयान का उपयोग कर सकता हूं?

<%=commentsNumber%> comment<% if (commentsNumber > 1) { %> s <% } %> 
+0

आपका वाक्य रचना सही लग रहा है, और मेरे लिए काम करता है। क्या आप सुनिश्चित हैं कि var टिप्पणियां संख्या मौजूद है और एक पूर्णांक है? – mysmallidea

+1

हां, अजीब बात है कि दस्तावेज़ों में सशर्तों का उल्लेख नहीं किया गया है! – UpTheCreek

उत्तर

117

दूसरों के लिए कि इस पर ठोकर, आप भी सशर्त बयान में EJS पैरामीटर/रंगमंच की सामग्री का उपयोग कर सकते हैं:

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 
<% } %> 
+2

क्या आप 'शामिल' कथन के मामले में सशर्त इनलाइन लिख सकते हैं? वह '<% लिख रहा है अगर (सत्य) {foo/bar}%> शामिल है त्रुटि में प्रतीत होता है। क्या कोई विधि समान है या '<% %>' 'शामिल 'को तोड़ना आवश्यक है। – kuanb

16

EJS कि क्या आप का उपयोग पर निर्भर करता है अलग ढंग से व्यवहार करने लगता है {} अंकन या नहीं:

मैं जाँच की है और निम्नलिखित शर्त आप के रूप में मूल्यांकन किया जाता है उम्मीद करेंगे:

<%if (3==3) {%> TEXT PRINTED <%}%> 
<%if (3==4) {%> TEXT NOT PRINTED <%}%> 

जबकि यह एक नहीं करता है:

<%if (3==3) %> TEXT PRINTED <% %> 
<%if (3==4) %> TEXT PRINTED <% %> 
+10

क्या आप एक स्पेस कैरेक्टर को कुछ करने की उम्मीद करेंगे? – UpTheCreek

105

सशर्त काम अगर वे कर रहे हैं सही ढंग से संरचित, मैं इस मुद्दे में भाग गया और इसे समझ लिया।

सशर्त, के लिए, else से पहले टैग पिछले if के अंत टैग अन्यथा बयान अलग से मूल्यांकन करें और कोई त्रुटि उत्पन्न करेगा के साथ रखा जाना चाहिए।

त्रुटि!

<% if(true){ %> 
    <h1>foo</h1> 
<% } %> 
<% else{ %> 
    <h1>bar</h1> 
<% } %> 

सही

<% if(true){ %> 
    <h1>foo</h1> 
<% } else{ %> 
    <h1>bar</h1> 
<% } %> 

आशा है कि यह मदद की।

+1

धन्यवाद !! यह मुझे थोड़ी देर के लिए अटक गया। – xblymmx

+1

यह अविश्वसनीय रूप से सहायक था क्योंकि मैं किसी ऐसे मुद्दे पर चल रहा था जहां मैंने आपके 'अन्य' को आपके द्वारा उल्लिखित पहले कोड ब्लॉक की तरह एक अलग पंक्ति पर रखा था। इन उदाहरणों को शामिल करने के लिए बहुत बहुत धन्यवाद !! –

10

तुम भी else if सिंटैक्स का उपयोग कर सकते हैं:

<% if (x === 1) { %> 
    <p>Hello world!</p> 
<% } else if (x === 2) { %> 
    <p>Hi earth!</p> 
<% } else { %> 
    <p>Hey terra!</p> 
<% } %> 
+2

आपको यहां हाइलाइट करने की आवश्यकता है कि क्लोजिंग ब्रैकेट को ** सबसे निश्चित रूप से ** एक ही पंक्ति में उपयोग किया जाना चाहिए अन्यथा/else अगर – Paulo

3

हाँ, आप 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; 

} %> 
संबंधित मुद्दे