मैं हाल ही में इस मुद्दे में पड़ गए और मैं EJS पुन: कॉन्फ़िगर नहीं करना चाहता था, तो मैं कैसे अंडरस्कोर interpolates बदल गया है, मूल्यांकन करता है, और मूल्यों निकल जाता है।
_.templateSettings = {
interpolate: /\{\{=([^}]*)\}\}/g,
evaluate: /\{\{(?!=)(.*?)\}\}/g,
escape: /\{\{-([^}]*)\}\}/g
};
दूसरे शब्दों में, स्निपेट के ऊपर अंडरस्कोर में निम्नलिखित बदल जाएगा:
_.templateSettings = {
interpolate: /<%([\s\S]+?)%>/g,
evaluate: /<%=([\s\S]+?)%>/g,
escape: /<%-([\s\S]+?)%>/g
};
तो मैं करने के लिए सेटिंग को अपडेट:
डिफ़ॉल्ट रूप से, यहां वर्तमान अंडरस्कोर templating सेटिंग्स हैं:
अंतर्वेशन
- से:
<%= ... %>
- करने के लिए:
{{= ... }}
- अभिव्यक्ति:
/\{\{=([^}]*)\}\}/g
मूल्यांकन
- से:
<% ... %>
+०१२३५१६४१०६
- करने के लिए:
{{ ... }}
- अभिव्यक्ति:
/\{\{(?!=)(.*?)\}\}/g
भागने
- से
<%- ... %>
- करने के लिए:
{{- ... }}
- अभिव्यक्ति:
/\{\{-([^}]*)\}\}/g
तब मेरे अंडरस्कोर टेम्पलेट इस तरह दिखता है:
// Underscore
<script type="text/template">
<ul>
{{ _.each(collection, function(model) { }}
<li>{{= model.text }}</li>
<li>{{- model.textEscaped }}</li>
{{ }); }}
</ul>
</script>
... और मेरे EJS टेम्पलेट्स ही रहते हैं और मैं अंतर्वेशन/मूल्यांकन करता मूल्यों के लिए डिफ़ॉल्ट ERB सिंटैक्स का उपयोग करने के लिए जारी कर सकते हैं: <% ... %>
और <%= ... %>
:
// EJS
<% if (isAuthenticated) { %>
<%= user.displayName %>
<% } %>
स्रोत
2016-02-22 06:07:15
आपको दोनों की आवश्यकता क्यों है? और यहां वर्णित स्क्वायर ब्रैकेट काम करते हैं? http://code.google.com/p/embeddedjavascript/wiki/Testing – Marc
मैं बैकबोन.जेएस – deltanovember
के साथ ईजेएस का उपयोग कर रहा हूं स्क्वायर ब्रैकेट आपके लिए काम कर रहे हैं? – Marc