2012-05-25 14 views
5

में एक JSON सरणी से पिछले तत्व हो रही है तो, मैंने पाया कि सरणी तत्वों का उपयोग कर Handlebars में पहुँचा जा सकता है:एक Handlebars टेम्पलेट

{{myArray.2.nestedObject}} and {{myArray.0.nestedObject}} 

..to उदाहरण के लिए तीसरे और पहले तत्वों मिलता है। (handlebars-access-array-item)

क्या कोई सरणी से अंतिम तत्व प्राप्त करने का कोई तरीका है? मैं इसके लिए एक सहायक बनाने की कोशिश की:

Handlebars.registerHelper("lastElement", function(array) { 
    return array.last(); //Array.prototype extension 
}); 

... और यह बुला टेम्पलेट में इस प्रकार है:

{{lastElement myArray}} or even {{lastElement myArray.lastElement nestedArray}} 

दुःख की बात यह काम नहीं करता। सहायक कार्य स्पष्ट रूप से स्ट्रिंग लौटते हैं। मुझे जो चाहिए वह बहु-आयामी सरणी के साथ भी ऐसा करने में सक्षम होने का एक तरीका है।

+2

ध्यान दें कि आप पहले उदाहरण के लिए '{{myArray। [2] .nestedObject}} का उपयोग कर सकते हैं। [वही खंड-शाब्दिक नोटेशन] (https://github.com/wycats/handlebars-site/issues/26) एक चर सूचकांक संख्या के लिए मदद कर सकता है? – Arjan

उत्तर

7

काम करना चाहिए, मैंने इसका परीक्षण किया है।

टेम्पलेट:

{{last foo}} 

डाटा:

{foo : [1,2,3,4,5,6]} 

हेल्पर:

Handlebars.registerHelper("last", function(array) { 
    return array[array.length-1]; 
}); 
-1

कोड के ऊपर टुकड़ा सभी मामलों में ठीक काम करता है। लेकिन अगर सरणी पास हो जाती है तो एक सरणी सरणी, हैंडलबार फंक्शन फेंकने की त्रुटि की संभावना है। इसके बजाय एक शून्य जांच करें और फिर तदनुसार मूल्य वापस करें।

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