2010-01-15 11 views
6

क्या टेम्पलेट टूलकिट में एक अनाम सूची को पीछे हटाना संभव है?टेम्पलेट टूलकिट में एक अनाम सूची को कैसे उलट करें?

उदा।

[% FOREACH month IN [1..12].reverse %] 
    [% month %] 
[% END %] 

(सिवाय इसके कि यह काम नहीं करता है)।

बस आश्चर्य हुआ कि चर का उपयोग किए बिना या सरणी को स्पष्ट रूप से टाइप किए बिना इसे करने का एक साफ तरीका था।

+0

ऐसा लगता है कि किसी को एक लिखने खाका :: प्लगइन :: Autobox की जरूरत है। – oeuftete

उत्तर

10

क्षमा करें, ऐसा नहीं है। सीटू में अज्ञात सरणी को तुरंत चालू करने में सक्षम होने के कारण टीटी पार्सर द्वारा संभाला जाने वाला एक विशेष मामला है। आप उन पर काम नहीं कर सकते जैसे आप नियमित रूप से पर्ल में नामित चर के असाइन करने के मध्यवर्ती चरण के बिना कर सकते हैं।

संपादित करें: तुम भी एक सबरूटीन में पारित नहीं हो सकता इसलिए जैसे इस्तेमाल करने की कोशिश करने के लिए:

[% FOREACH month IN my_reverse([1..12]) %] 
    [% month %] 
[% END %] 

न ही आप एक वस्तु पर एक विधि का उपयोग करने की कोशिश कर सकते हैं:

[% FOREACH month IN testObj.my_reverse([1..12]) %] 
    [% month %] 
[% END %] 

वे संकलित करेंगे, लेकिन प्रत्येक मामले में, FOREACH निर्माण श्रृंखला के सिर को देखता है, उदाहरण के लिए पहले मामले में CODE संदर्भ और दूसरे में एक धन्य वस्तु।

+0

धन्यवाद एडम, यह जानना बहुत उपयोगी है। – aidan

0

मैं इस बारे में थोड़ा नया लेकिन क्या कर रहा हूँ:

[% महीनों = [ 'जनवरी,' फ़रवरी ',' मार्च ', ...]; महीनों

[% foreach मैं = [(months.size -1) -1 .. 0]%] ## मायने रखता है -11 12 तत्वों के लिए 0 करने के लिए [% महीने [(की ## सरणी मैं - 1)] ## मैं सकारात्मक संख्या में धर्मान्तरित - प्रदर्शित करता महीनों [11], महीने [10] ... महीनों [0]

0
<!-- show 2010 2009 2008 2007 --> 
[% SET startyear = 2007 %] 
[% SET endyear = 2010 %] 
[% SET allyears = [ startyear .. endyear ] %] 
[% FOREACH year IN alleyears.reverse %] 
    <li>[% year %]</li> 
[% END %] 
संबंधित मुद्दे