2012-06-16 26 views
6

अगर मैं पर्ल कक्षा में आलसी विशेषता मूस का उपयोग कर ऐलान करते हैं और विशेषता बिल्डर उपयोग कर रहा है: टेम्पलेट :: टूलकिट टेम्पलेट मेंखाका टूलकिट और आलसी मूस के गुण - उन्हें कैसे व्यवहार करते हैं बनाने के लिए?

has 'colors' => (
    is => 'rw', 
    isa => 'ArrayRef', 
    lazy => 1, 
    builder => '_build_colors', 
); 

तो मैं इस विशेषता का उपयोग करने की कोशिश करेंगे:

[% FOREACH color IN colors %] 
... 
[% END %] 

मुझे कुछ नहीं मिलेगा। टीटी के साथ विशेषता को संसाधित करने से पहले मुझे इस एआरआर मैनुअल को पर्ल स्क्रिप्ट में कॉल करना होगा। क्या कोई तरीका टीटी स्वयं द्वारा इस एटीआर को शुरू कर सकता है?

उत्तर

13

मैं तुम्हें इस तरह मूस वस्तु से गुजर रहे हैं संभालने हूँ।

$template->process('some.tt', $moose_object, ...); 

दूसरा पैरामीटर एक हैशफ माना जाता है, किसी भी प्रकार की धन्य वस्तु (मूस या नहीं)।

तो, मूस वस्तु एक सादे हैश मानेंगे और जब तक आप इसे टेम्पलेट टूलकिट बाहर एक्सेसर फोन करके पॉप्युलेट 'रंग' कुंजी नहीं है।

आप कुछ इस तरह करने की जरूरत है:

$template->process('some.tt', { obj => $moose_object }, ...); 

और फिर अपने खाके में:

[% FOREACH color IN obj.colors %] 
... 
[% END %] 

के रूप में आप यह करने की उम्मीद कौन सा काम करना चाहिए।

+1

ओपी के वास्तविक त्रुटि के अनुमान अच्छा है! मुझे यकीन है कि आप से पहले :) – ikegami

+0

@ikegami नहीं इस ने काट लिया गया है, लेकिन मैं हाल ही में टेम्पलेट टूलकिट के साथ काम करने और अध्ययन करने के लिए कैसे गुप्त कोष में काम करता है की आवश्यकता होगी, जिस तरह से बहुत अधिक समय बिताया है। – Dre

+1

हाँ, वास्तविक योजना एक छोटे से अधिक जटिल था, लेकिन सामान्य रूप में अपने तरीके से, मेरे लिए काम किया, धन्यवाद! – Sly

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

  • कोई संबंधित समस्या नहीं^_^