2012-01-25 17 views

उत्तर

11

मैं निम्नलिखित सहायक बनाया है, लेकिन वहाँ एक बेहतर समाधान है कि अगर वहाँ मैं उत्सुक हूँ।

Handlebars.registerHelper('toLowerCase', function(value) { 
    if(object) { 
     return new Handlebars.SafeString(value.toLowerCase()); 
    } else { 
     return ''; 
    } 
}); 
+3

तुम क्यों SafeString' यहाँ का प्रयोग करेंगे '? किसी भी एचटीएमएल को संभवतः अभी भी बच जाना चाहिए। –

+11

अगर कथन के अंदर आप अविकसित "ऑब्जेक्ट" चर के लिए जांच कर रहे हैं, वैसे भी मुझे लगता है कि इसे एक पंक्ति 'रिटर्न (वैल्यू और टाइप टाइप वैल्यू ===' स्ट्रिंग ') में फिर से लिखा जा सकता है? value.toLowerCase(): ''; ' –

20

आप बस के रूप में (चाहे या नहीं यह हैंडल द्वारा उत्पन्न की परवाह किए बिना) HTML में लोवरकेस कुछ पाठ प्रदर्शित करने के लिए कोशिश कर रहे हैं, तो आप ऐसा तरह सीएसएस का उपयोग करें और लागू कर सकते हैं text-transform:

.css-class-here { 
    text-transform: lowercase; 
} 
+3

या इसके विपरीत: .all-caps { टेक्स्ट-ट्रांसफॉर्म: अपरकेस; } – rmcsharry

8

@Eric से पिछला जवाब अब काम करने के लिए नहीं लगता है, मेरी समाधान बहुत समान है, लेकिन शायद सहायकों की परिभाषा हैंडल के नए संस्करण में एक छोटे से बदल दिया है:

Handlebars.registerHelper('tolower', function(options) { 
    return options.fn(this).toLowerCase(); 
}); 

और टेम्पलेट में

<img src="/media/images/modules/{{#tolower}}{{name}}{{/tolower}}.png"... 

चीयर्स

+2

अच्छा है, लेकिन एक ब्लॉक सहायक का उपयोग करना अधिक है, और टेम्पलेट को पढ़ने के लिए कठिन बनाता है। मुझे लगता है कि सिरिल का जवाब बेहतर है। – Lambart

56

के रूप में बस doc में विस्तार से बताया:

Handlebars.registerHelper('toLowerCase', function(str) { 
    return str.toLowerCase(); 
}); 

और सिर्फ इस तरह इसका इस्तेमाल:

<h1>By {{toLowerCase author}}</h1> 
2

को चोट नहीं करता है यह भी जांचें और सुनिश्चित करें कि यह एक स्ट्रिंग है और यदि कुछ भी वापस नहीं आती है।

Handlebars.registerHelper('lowercase', function (str) { 
    if(str && typeof str === "string") { 
    return str.toLowerCase(); 
    } 
    return ''; 
}); 

उपयोग:

// now let's pass a string or variable to our helper 
{{lowercase 'MY NAME IS'}} 

आउटपुट:

my name is 
संबंधित मुद्दे

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