टेम्प्लेटिंग के लिए प्रलेखन आंशिक है, मैंने स्रोत को देखा।
_.Template समारोह 3 तर्क हैं:
- स्ट्रिंग टेक्स्ट : टेम्पलेट स्ट्रिंग
- ऑब्जेक्ट डेटा : मूल्यांकन डेटा
- ऑब्जेक्ट सेटिंग्स : स्थानीय सेटिंग्स, _.templateSettings वैश्विक सेटिंग्स ऑब्जेक्ट है
यदि कोई डेटा (या अशक्त) नहीं दिया गया है, तो रेंडर फ़ंक्शन से वापस कर दिया जाएगा। इसका 1 तर्क है:
- ऑब्जेक्ट डेटा : ऊपर दिए गए डेटा के समान
सेटिंग्स में 3 रेगेक्स पैटर्न और 1 स्थिर पैरामीटर हैं:
- RegExp मूल्यांकन : "<% कोड%>" टेम्पलेट स्ट्रिंग में
- RegExp इंटरपोलेट : "<% = कोड%>" टेम्पलेट स्ट्रिंग में
- RegExp से बच : "<% - कोड%>"
- स्ट्रिंग चर : वैकल्पिक, टेम्पलेट स्ट्रिंग में डेटा पैरामीटर का नाम
एक मूल्यांकन अनुभाग में कोड का बस मूल्यांकन किया जाएगा। आप मूल्यांकन किए गए टेम्पलेट के लिए __p + = "मिस्ट्रिंग" कमांड के साथ इस खंड से स्ट्रिंग जोड़ सकते हैं , लेकिन यह अनुशंसित नहीं है (टेम्प्लेटिंग इंटरफ़ेस का हिस्सा नहीं), इसके बजाय इंटरपोलेट अनुभाग का उपयोग करें। इस तरह का सेक्शन अगर या टेम्पलेट के लिए ब्लॉक जोड़ने के लिए है।
इंटरपोलेट अनुभाग में कोड का परिणाम मूल्यांकन किए गए टेम्पलेट में जोड़ा जाएगा। यदि नल वापस दिया गया है, तो खाली स्ट्रिंग जोड़ा जाएगा।
भागने अनुभाग के साथ एचटीएमएल निकल जाता _.escape दिया कोड के रिटर्न मान पर। तो एक की तुलना में अपने समान _.escape (कोड) एक में लगाना अनुभाग, लेकिन यह साथ निकल जाता है \ तरह खाली स्थान के पात्रों \ N से पहले यह करने के लिए कोड गुजरता _.escape । मुझे नहीं पता कि यह क्यों महत्वपूर्ण है, यह कोड में है, लेकिन यह इंटरपोलेट और _.स्केप के साथ अच्छी तरह से काम करता है - जो कि सफेद-अंतरिक्ष वर्णों से बचता नहीं है - भी।
डिफ़ॉल्ट रूप से डेटा पैरामीटर एक (डेटा) {...} स्टेटमेंट द्वारा पास किया जाता है , लेकिन इस तरह का मूल्यांकन नामांकित चर के साथ मूल्यांकन करने की तुलना में बहुत धीमा है। तो चर पैरामीटर के साथ डेटा का नामकरण कुछ अच्छा है ...
उदाहरण के लिए:
var html = _.template(
"<pre>The \"<% __p+=_.escape(o.text) %>\" is the same<br />" +
"as the \"<%= _.escape(o.text) %>\" and the same<br />" +
"as the \"<%- o.text %>\"</pre>",
{
text: "<b>some text</b> and \n it's a line break"
},
{
variable: "o"
}
);
$("body").html(html);
परिणाम
The "<b>some text</b> and
it's a line break" is the same
as the "<b>some text</b> and
it's a line break" and the same
as the "<b>some text</b> and
it's a line break"
आप यहां अधिक उदाहरण पा सकते हैं कि टेम्पलेट का उपयोग कैसे करें और डिफ़ॉल्ट सेटिंग्स को ओवरराइड करें:
http://underscorejs.org/#template
टेम्प्लेट लोड करके आपके पास कई विकल्प हैं, लेकिन अंत में आपको हमेशा टेम्पलेट को स्ट्रिंग में बदलना होगा। आप इसे उदाहरण की तरह सामान्य स्ट्रिंग के रूप में ऊपर दे सकते हैं, या आप एक स्क्रिप्ट टैग से लोड कर सकते हैं, और प्रयोग .html () jQuery के समारोह, या आप के साथ एक अलग फ़ाइल से यह लोड कर सकते हैं TPL प्लगइन का require.js ।
टेम्प्लेट के बजाय लैकोनिक के साथ डोम ट्री बनाने का एक और विकल्प ।