2012-07-25 23 views
26

मैं मूंछें के साथ निम्न तर्क लागू करना चाहते हैं:मूंछें - सरणी का पता लगाने के लिए कैसे खाली नहीं है?

{{#if users.length > 0}} 
    <ul> 
     {{#users}} 
      <li>{{.}}</li> 
     {{/users}} 
    </ul> 
{{/if}} 

// eg. data = { users: ['Tom', 'Jerry'] } 

मैं जरूरत को पूरा करने users संरचना को संशोधित करना चाहिए? उदाहरण के लिए:

{{#hasUsers}} 
    <ul> 
     {{#users}} 
      <li>{{.}}</li> 
     {{/users}} 
    </ul> 
{{/hasUsers}} 

// eg. data = { hasUsers: true, users: ['Tom', 'Jerry'] } 
+2

हाँ, मेरा मानना ​​है कि आप की तरह आप 'के साथ किया है डेटा को संशोधित करने के लिए जा रहे हैं hasUsers'। एक और विकल्प अधिक मजबूत [हैंडलबार्स] (http://handlebarsjs.com/) का उपयोग कर रहा है जो इस सटीक मामले को उनके मुखपृष्ठ पर संभालता है। – maxbeatty

उत्तर

44

क्षमा करें, यह बहुत देर हो सकती है। लेकिन मैं इसी तरह की आवश्यकता थी और यह करने के लिए एक बेहतर रास्ता मिल गया: यहां नमूना

{{#users.length}} 
    <ul> 
     {{#users}} 
      <li>{{.}}</li> 
     {{/users}} 
    </ul> 
{{/users.length}} 
{{^users.length}} 
    <p>No Users</p> 
{{/users.length}} 

कार्य करना: http://jsfiddle.net/eSvdb/

+4

कृपया ध्यान दें हालांकि, यह मानक मूंछ फ़ंक्शन नहीं है। यह मूंछ कार्यान्वयन के आधार पर भिन्न होता है। – corgrath

+0

SO पर बहुत देर हो चुकी नहीं है :) – jClark

+0

मैं पुष्टि कर सकता हूं, क्योंकि @ कॉर्ग्राथ ने कहा है कि यह कार्यान्वयन-निर्भर है: यह samskivert की जावा मूंछ लाइब्रेरी के साथ काम नहीं कर रहा है। – penguin86

17

का उपयोग करना {{# users.length}} महान यदि आप के लिए दोहराने के लिए भीतरी बयान चाहते हैं काम करता है सरणी के प्रत्येक तत्व है, लेकिन अगर आप केवल केवल एक बार को चलाने के लिए एक बयान चाहते हैं, आप उपयोग कर सकते हैं:

{{#users.0}} 
... 
{{/users.0}} 
{{^users.0}} 
... 
{{/users.0}} 
+5

इस तरह से php के साथ भी अच्छी तरह से काम करता है क्योंकि सरणी में लंबी संपत्ति नहीं होती है। – JacopKane

+1

PHP – Michael

+1

के लिए मूंछ में निश्चित रूप से काम करने के लिए यह सही उत्तर – stewart715