2012-09-18 10 views
5

क्या कोई बेहतर तरीका है?{{#if foo}} {{foo}} {{/ if}} हैंडलबार्स.जेएस में मूल्य की जांच करने का एक बेहतर तरीका है? (शांत संदर्भ नोटेशन)

{{#if firstName }} {{ firstName}} {{/if}} 
{{#if middleName }} {{ middleName}} {{/if}} 
{{#if lastName }} {{ lastName}} {{/if}} 

मुझे अक्सर डेटा गायब होता है।

+1

मुझे लगता है आप एक आसान समय डेटा को साफ होगा टेम्पलेट इसे देखने से पहले। वैकल्पिक रूप से, आप एक '{{नाम यह "firstName" "middleName" "lastName"}}' सहायक 'जोड़ने में सक्षम हो सकते हैं। –

+1

यदि डेटा खोने से आपका मतलब है कि आपके पास कोई मूल्य नहीं है, तो यह क्यों मायने रखता है कि आप इसे छोड़ देते हैं? यदि आपने {{firstName}} {{middleName}} {{lastName}} किया है और उनमें से एक मान मौजूद नहीं है तो यह इसके स्थान पर उत्सर्जित होगा। अन्यथा यदि आप स्वरूपण को नियंत्रित करना चाहते हैं तो आपको सही प्रारूप में टेम्पलेट पर भेजने से पहले डेटा को प्रारूपित करना होगा, या इसके लिए एक विशिष्ट सहायक बनाना होगा, जैसा कि एमयू ने सुझाव दिया था। –

उत्तर

1

हैंडलबार्स के साथ यदि मान शून्य है या रिक्त हैंडलबार्स निक किट्टो के रूप में एक खाली स्ट्रिंग थूक जाएंगे।

तो बस {{firstName}} {{middleName}} {{lastName}} ठीक होगा। हालांकि, यदि मध्य नाम रिक्त था तो आप पहले और आखिरी नाम के बीच 2 रिक्त स्थान के साथ समाप्त हो जाएंगे, यह केवल एकमात्र संभावित समस्या है जिसे मैं देख सकता हूं।

+0

लेकिन वस्तु शून्यता की जांच के बारे में क्या? जैसे कि {{#if क्लाइंट}} {{client.name}} {{/ if}}? –

+0

आपको अभी भी उस मामले में '{#if क्लाइंट}' की आवश्यकता नहीं है। यदि 'क्लाइंट 'शून्य है, जैसा कि आपके उदाहरण में,' {{client.name}} 'के लिए अभी भी कुछ भी आउटपुट नहीं होगा। यदि आप मुझ पर विश्वास नहीं करते हैं तो आप यहां परीक्षण कर सकते हैं;) http://tryhandlebarsjs.com/ –

1

तुम भी {{#with firstName}} {{this}} {{/with}}

सबसे अच्छा तरीका है का उपयोग कर सकते एक वस्तु {name:{first:'James', last:'Bond'}} और फिर जैसा कि नाम से बचाने के लिए होगा:

{{#with name}}{{last}}, {{first}} {{last}}{{/with}}

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