2014-07-20 21 views
9

मैं अपने मोजो टेम्पलेट्स में फैंसी पोस्टफिक्स डेरफ़्रेंसिंग का उपयोग करना चाहता हूं। मुझे लगता है मैं हर टेम्पलेट फ़ाइल के शीर्ष परMojolicious टेम्पलेट्स में नई वाक्यविन्यास सुविधाओं का उपयोग कैसे करें

% use experimental 'postderef'; 

कर सकता है लगता है, लेकिन यह है कि दोहराव और लंगड़ा लगता है। क्या कोई तरीका है कि मैं Mojolicious को अपनी प्रमेमा वरीयताओं को प्रत्येक टेम्पलेट के व्याख्यात्मक दायरे में आयात कर सकता हूं?

उत्तर

6

आप अपने विकल्पों के साथ EPRenderer प्लगइन पुनः लोड कर सकते हैं (डिफ़ॉल्ट विकल्पों के बिना है), विकल्प template में Mojo::Template के लिए डिफ़ॉल्ट मान शामिल हैं।

use Mojolicious::Lite; 

plugin 'EPRenderer', template => { prepend => 'use experimental "postderef";use Data::Dump "pp";'}; 

get '/' => sub { shift->render('index'); }; 

app->start; 
__DATA__ 

@@ index.html.ep 
% layout 'default'; 
% title 'Welcome'; 

Welcome to the Mojolicious real-time web framework! 

% my $a = [[0]]; 
% push $a->[0]->@*, 1; 
%= pp($a) 

@@ layouts/default.html.ep 
<!DOCTYPE html> 
<html> 
    <head><title><%= title %></title></head> 
    <body><%= content %> 

    </body> 
</html> 
+0

ग्रेट सॉल्यूशन! धन्यवाद। – friedo

0

यदि आप अपने Mojolicious ऐप में उस प्रज्ञा का उपयोग करते हैं, तो यह टेम्पलेट्स के लिए भी काम करना चाहिए।

यदि नहीं, तो आप इसे एक लेआउट में जोड़ सकते हैं और अपने टेम्पलेट्स से उस लेआउट का उपयोग कर सकते हैं।

+1

ऐप में प्रगति जोड़ना टेम्पलेट्स को प्रभावित नहीं करता है (क्योंकि वे एक अलग दायरे में संकलित होते हैं।) लेकिन इसे लेआउट में जोड़ना एक ऐसा विचार है जिसे मैंने नहीं किया है। मैं इसे एक शॉट दूंगा। – friedo

+0

अफसोस की बात यह है कि लेआउट में प्रगति जोड़ने की तरह इसका उपयोग करने वाले टेम्पलेट्स पर कोई प्रभाव नहीं पड़ता है। – friedo

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