2012-01-24 8 views
10

मैं इस तरह एचटीएमएल templating के लिए Underscore.js उपयोग करते हैं, मूंछें सिंटैक्स का उपयोग करने के लिए सेट,:अगर मैं "mustache" में अंडरस्कोर.जेएस की तरह कैसे/करूं?

<% if (typeof(date) != "undefined") { %> 
    <span class="date"><%= date %></span> 
<% } %> 

कैसे मैं इसे एक Underscore.js मूंछें शैली में अनुवाद कर सकते हैं: {{ }}

मैं इस कोड है टेम्पलेट, {{ }} का उपयोग कर?

+3

आपको टेम्पलेट के बाहर तर्क को पट्टा देना चाहिए और टाइप करें (दिनांक)! = "टाइप करें (दिनांक)! =" आपके दृश्य में अपरिभाषित, टेम्पलेट्स को केवल पास के रूप में माना जाना चाहिए। –

उत्तर

20

के बाद इस कोड को शामिल मैं का उपयोग करें:

_.templateSettings = { 
     evaluate : /\{\[([\s\S]+?)\]\}/g, 
     interpolate : /\{\{([\s\S]+?)\}\}/g 
    }; 

तो बजाय <%= … %> उपयोग {{ … }} की और <% … %> के बजाय का उपयोग {[ … ]}

+0

क्यों '([\ s \ S ] +?) ''। +?) '' underscore.js' दस्तावेज़ से उदाहरण के रूप में? किसी भी कारण? – simon

+1

@ सिमॉन '[\ s \ S]' एक सामान्य रेगेक्स पैटर्न है जो किसी भी मैच से मेल खाता है चरित्र। रेगेक्स में '.' न्यूलाइन अक्षरों से मेल नहीं खाता है। जावास्क्रिप्ट के लिए उपलब्ध रेगेक्स इंजन '।' न्यूलाइन मैच (जैसा कि आप अन्य रेगेक्स इंजन के साथ कर सकते हैं) बनाने का एक तरीका प्रदान नहीं करते हैं। अधिक जानकारी: http: //www.regular-expressions। जानकारी/dot.html –

0
{{#date}} 
<span class="date">{{date}}</span> 
{{/date}} 
+1

यह वास्तव में मेरे लिए काम नहीं करता है! सिफर काम बाहर टेम्पलेट! लेकिन मैं अभी भी एक अंदरूनी टेम्पलेट कामकाजी विधि की तलाश में हूं !! वैसे भी धन्यवाद – trouble

-1

सिर्फ संलग्न रेखांकित

_.templateSettings = { 
    interpolate:/\{\{(.+?)\}\}/g 
}; 
+1

पहले से ही हो गया है! मेरा सवाल अगर उपयोग के बारे में है ... तो ... और धन्यवाद! धन्यवाद – trouble

1

http://handlebarsjs.com/ mustach है ई तर्क, आंशिक, मददगार & संदर्भ के साथ। इसे प्रीकंपिल्ड भी किया जा सकता है। एक IMHO होना चाहिए।

संबंधित मुद्दे