2013-08-20 5 views
5

मैं इस तरह कुछ करना चाहता हूँ:बर - गतिशील तत्व जिम्मेदार बताते हैं

{{#each user}} 
    <span class="{{user.female ? 'female-span' : 'male-span'}}">{{name}}</span> 
{{/each}} 

यह AngularJS की तरह कुछ में आसानी से संभव है, लेकिन मैं इस हैंडल नहीं कर सकते। जब मैं गतिशील रूप से तत्व विशेषताओं को बदलना चाहता हूं तो हैंडलबार में पालन करने के लिए मुहावरे/पैटर्न क्या है? क्या कोई हैंडलबार प्लगइन्स ऐसा करता है?

उत्तर

8

हैंडलबर्स ने आपको केवल {{#if}} सहायक (जिसे यहां उपयोग किया जा सकता है, यह केवल वर्बोज़ है)। कम तर्क होने के कारण, यह ब्रैकेट के अंदर पारित कोड का मूल्यांकन नहीं करता है (अंडरस्कोर टेम्पलेट्स यह करता है)।

यह एक अच्छी बात है क्योंकि यह सुनिश्चित करता है कि आपके टेम्पलेट का कोई दुष्प्रभाव नहीं होगा।

यहाँ आप शायद टेम्पलेट से इस तर्क को हटाने और एक टेम्पलेट तर्क के रूप में वर्ग के नाम पारित करने के लिए चाहता हूँ:

template({ genderClass: user.female ? 'female-span' : 'male-span' }); 

फिर, टेम्पलेट में:

<span class="{{genderClass}}">{{name}}</span> 

आपके मामले में आप एक सरणी में हैं, इसलिए आप मॉडल संपत्ति के रूप में genderClass जोड़ सकते हैं। अन्यथा आप एक कस्टम सहायक विधि का उपयोग कर सकते हैं, लेकिन यह काफी सरल के लिए बहुत अधिक ओवरहेड है।

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