2014-07-20 61 views
9

我想在我的Mojo模板中使用花哨的後綴解引用。我想我可以做如何使用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 App中使用該編譯指示,它也應該用於模板。

如果不是,那麼您可以將它添加到佈局並使用模板中的佈局。

+1

添加編譯的應用程序不會影響模板(因爲它們在不同的範圍正在編譯。),但它增加了佈局的想法,我還沒有試過。我會給它一個鏡頭。 – friedo

+0

不幸的是,它看起來像在佈局中添加雜注對使用它的模板沒有任何影響。 – friedo