2010-11-08 12 views
12

मैं अपना खुद का टेम्प्लेट बनाना चाहता हूं जिसे मैं ऑब्जेक्ट पास कर सकता हूं, और ऑब्जेक्ट के माध्यम से सोया टेम्पलेट को फिर से चालू कर सकता हूं और चाबियाँ और मान खींच सकता हूं।Google बंद टेम्पलेट का उपयोग करते समय सोया फ़ाइल के भीतर किसी ऑब्जेक्ट पर मैं फिर से कैसे सक्रिय करूं?

तो मेरे पास है और जावास्क्रिप्ट में वस्तु और एक सोया टेम्पलेट फोन:

var obj = {'one':'a', 'two':b, 'three':c}; 
nameSpace.templateName({'paramValue': obj}); 

मैं ['one', 'two', 'three'] मान कैसे प्राप्त करूं? आम तौर पर मैं jQuery के each() फ़ंक्शन का उपयोग करता हूं, लेकिन मुझे यकीन नहीं है कि ऑब्जेक्ट को किसी सरणी में परिवर्तित किए बिना सोया फ़ाइलों में कुछ ऐसा कैसे करें।

जिन वस्तुओं का मैं उपयोग कर रहा हूं, वे ज्ञात रूप हैं (कोई नेस्टेड ऑब्जेक्ट्स नहीं हैं, या यदि वहां हैं, तो वे समय से पहले ज्ञात हैं और ज्ञात गहराई पर जाते हैं)। इसके लिए उत्तर या नेस्टेड ऑब्जेक्ट्स के साथ सामान्य ऑब्जेक्ट केस का स्वागत है।

{namespace nameSpace} 

/** 
* Prints keys and values of the object 
* @param paramValue object with keys and values 
*/ 
{template .templateName} 
    {$paramValue[0]} // undefined 
    {$paramValue.Keys} // undefined 
    {$paramValue.keys} // undefined 
    {$paramValue.one} // prints 'a' 
    {foreach $val in $paramValue} 
     // never reached 
    {/foreach} 
{/template} 

उत्तर

20

अब आप उन्हें keys() फ़ंक्शन के साथ प्राप्त कर सकते हैं।

{foreach $key in keys($paramValue)} 
    key: {$key} 
    value: {$paramValue[$key]} 
{/foreach} 
+1

यह निश्चित रूप से आज के सही उत्तर है। कृपया प्रलेखन देखें: https://developers.google.com/closure/templates/docs/functions_and_directives –

+1

कुंजी() मूल कुंजी ऑर्डरिंग का सम्मान नहीं करता है (यह दस्तावेज़ में नोट किया गया है)। अर्थात् यह कोई मुद्दा नहीं है लेकिन व्यवहार में, आपको इसके बारे में पता होना चाहिए। –

1

चीजों के दिखने से, यह इस समय उपलब्ध नहीं है, लेकिन यह भविष्य में होगा। Google विकास समुदाय के लिए योजनाओं पर चर्चा करने का एक लिंक यहां दिया गया है।

http://groups.google.com/group/closure-templates-discuss/browse_thread/thread/a65179c527580aab

वर्तमान में, आप इस पर पुनरावृति करने के लिए एक सरणी में अपनी वस्तु को बदलने के लिए, यदि आप कुंजी समय से आगे पता नहीं है की जरूरत है।

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

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