जवाबों:
"प्रत्येक" टैग एक "और" खंड भी ले सकता है। तो सबसे सरल रूप है:
{{#each items}}
// render item
{{else}}
// render empty
{{/each}}
यदि आपके पास कुछ ऐसा है जिसे आप केवल एक बार प्रदर्शित करना चाहते हैं और यदि सरणी में डेटा है तो उपयोग करें
{{#if items.length}}
//Render
{{/if}}
.length
खाली सरणियों के लिए 0 लौटाएंगे इसलिए हमने एक वास्तविक गलत मूल्य प्राप्त किया है।
<ul>
बार एक <li>
टैग और सूची में प्रत्येक आइटम के लिए एक टैग प्रदान करना चाहता हूं । अगर सूची खाली है, तो मैं यह भी नहीं चाहता कि मैं <ul>
रेंडर करूं , और <p>empty list<p>
अंदर की तरह कुछ और प्रदान <ul>
नहीं करना है।
[]
झूठे के रूप में मूल्यांकन किया जाता है। @Drejc का उत्तर, हैंडलबार विनिर्देश द्वारा सही उत्तर है।
ठीक है, मैंने सोचा था कि यह आसान है:
{{#if items}}
// render items
{{#each items}}
// render item
{{/each}}
{{else}}
// render empty
{{/if}}
items
एक खाली सरणी (जिसका मान है []
), तो यह एक सत्य मान उत्पन्न करेगा। जबकि items.length
एक खाली सरणी के लिए एक गलत मूल्य पैदा करता है। @ डुआने का जवाब देखें ।
if
है, लेकिन Handlebars प्रलेखन बहुत स्पष्ट है: "अपने तर्क रिटर्न तो false
, undefined
, null
, ""
, 0
, या []
, हैंडल ब्लॉक से नहीं चल पाएगी।" मुझे पहले डॉक्स की जाँच करनी चाहिए थी।
यदि आप जांचना चाहते हैं कि कोई संग्रह (कर्सर) खाली है या नहीं, तो पिछले उत्तर उपयोगी नहीं होंगे, इसके बजाय आपको count()
विधि का उपयोग करना होगा :
{{#if items.count}}
<p>There is {{items.count}} item(s).</p>
{{else}}
<p>There is nothing</p>
{{/if}}
{{#If}} के शीर्ष पर {{# #}} का उपयोग करने की आवश्यकता वाले किसी भी व्यक्ति के लिए (अर्थात यदि लूप के लिए एक लूप है)। क्या उनके पास सरणियों की तीन अलग-अलग सूची है।
यदि किसी कथन के अंदर लुकअप का उपयोग करना मेरे लिए समस्या को हल करता है। जैसा कि, उपरोक्त उत्तरों से मेरी समस्या का समाधान नहीं हुआ।
यहाँ मेरा कोड है,
{{#each OtherRandomItems}}
{{this}}
{{lookup ../AnotherRandomItems @index}}
{{#if (lookup ../RandomItems @index)}}
// render items
{{else}}
// render empty
{{/if}}
{{/each}}
#each
तरह<ul>
(<li>
एस के अंदर), आप नहीं चाहते कि रिक्त स्थिति को लपेटा जाए<ul>
।