ईजेएस टेम्पलेट में एक अपरिभाषित संपत्ति की जांच करने का सबसे अच्छा तरीका क्या है?आप node.js के लिए ejs में अपरिभाषित संपत्ति की जांच कैसे करेंगे?
(मैं टीजे Holowaychuk द्वारा node.js package उपयोग कर रहा हूँ)
उदाहरण:
var tpl = '<% if (foo) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz" } }));
मैं इस प्रस्तुत करने के लिए "foo अपरिभाषित" उम्मीद थी। यह इसके बजाय foo अपरिभाषित त्रुटि फेंक देता है।
मुझे पता है कि यह एक मुद्दा नहीं माना जाता है, क्योंकि यह व्यवहार in the tests से अपेक्षित है। क्या इससे बचने का कोई आसान तरीका है?
मुझे मिला एकमात्र समाधान hasOwnProperty
विधि का उपयोग कर रहा है।
var tpl = '<% if (hasOwnProperty("foo")) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz"} }));
यह किसी भी त्रुटि को फेंक नहीं देता है।
क्या टेम्पलेट को साफ रखने का कोई बेहतर तरीका है? या यह इस त्रुटि को क्यों फेंक देता है?
यह वही है जो मैं चाहता था। :) – pvorb
बस मुझे क्या चाहिए, लेकिन wtf, आपको ऐसा क्यों करना है ?! :) –
स्रोत की जांच किए बिना सुनिश्चित नहीं है, लेकिन मुझे संदेह है कि टेम्पलेट इंजन अपरिभाषित मानों के लिए चर के चरम पर परेशान नहीं है। प्रतीत होता है कि –