पढ़ना http://search.cpan.org/~ether/Catalyst-Manual-5.9009/lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod समझा $c->stash(template => "hello.tt");
.
एक टेम्पलेट है, लेकिन दृश्य कहां है? स्पष्ट रूप से दृश्य निर्दिष्ट क्यों नहीं किया गया है?
इसके अलावा: किसी दृश्य को स्पष्ट रूप से कैसे कहा जाए (टेम्पलेट नाम से नहीं)?
उत्तर:
उत्तर № 1 के लिए 4यह थोड़ा मुश्किल हो सकता है क्योंकि यह बेहद लचीला और सादे DWIW का एक संयोजन है। .tt
टेम्पलेट नाम में इंगित करता है कि खाका :: टूलकिट प्रकल्पित डिफ़ॉल्ट है। यह इस दृश्य का उपयोग करने के लिए आवश्यक नहीं है, लेकिन इसका उपयोग अधिकांश प्रलेखन में किया जाता है।
आप अपने स्टैश में जो कुछ भी है उसे रेंडर कर सकते हैं /$ctx
एक दृश्य के लिए अग्रेषित करके: $c->forward($c->view("JSON"));
उदाहरण के लिए, या आप इस तरह के बाकी अनुरोध चक्र के लिए निर्णय ले सकते हैं $c->stash( current_view => "CSV" )
। आपके पास आपके आवेदन में स्थापित और कॉन्फ़िगर किया गया दृश्य है, निश्चित रूप से। आप भी सीधे विचारों का उपयोग कर सकते हैं-
my $body = $c->view("Xslate")->render($c, "folder/email_template.tx", $params);
एक मुश्किल हिस्सा बन जाता है जो आपका end
विधि (s) करेंगे।
आम तौर पर अनुशंसित डिफ़ॉल्ट है उत्प्रेरक :: कार्रवाई :: RenderView। यह स्मार्ट (और लचीला है अगर आप इसके व्यवहार को बदलना चाहते हैं)। यदि आपने एक रीडायरेक्ट सेट किया है, उदाहरण के लिए, यह "एक पेज रेंडर नहीं किया है, यह सिर्फ रीडायरेक्ट करेगा। यदि आपने इसे उत्पन्न किया है। $c->response->body
सामग्री यह भी "बस रोक" और विश्वास है कि आप "पहले से ही किया है कि आप क्या चाहते थे।
लचीलेपन में पर्याप्त जटिलता हैमैं वास्तव में सिर्फ एक टॉय ऐप चलाने की सलाह देता हूं, जो रीस्टार्टिंग देव सर्वर में चलता है और उन सभी चीजों को आज़माता है, जिन्हें आप बेहतर तरीके से समझना चाहते हैं। इसमें से कोई भी अपने आप में कठिन नहीं है, लेकिन यह सब भ्रम में जोड़ता है जब तक कि आप इसे पचने योग्य विखंडू में नहीं तोड़ते।