これはわずかに異なる2つの方法で行うことができます。before_render
フックを追加し、変数を設定することにより、
まず。それはそうのようなプラグインの内側にそれをすべてをパックするのは簡単です:
package Mojolicious::Plugin::TemplateName;
use Mojo::Base 'Mojolicious::Plugin';
sub register {
my ($self, $app, $conf) = @_;
$app->helper('template' => sub { return shift->stash('mojo.template') });
$app->hook(before_render => sub {
my $c = shift;
$c->stash('mojo.template', $_[0]->{template})
});
}
1;
と第二に、それはテンプレート内で行うことができます。この
<%= template %>
のようなテンプレート内で使用 - 内部の変数を設定することにより、テンプレート自体:
% stash('template', __FILE__);
、その後、レイアウトに変数を再利用:
<%= $template %>
この場合、テンプレートだけでなく、接尾辞付きでallというファイル名が得られます。
テンプレートhereにインスパイアされ、テンプレートは内側にレンダリングされています。
https://groups.google.com/forum/#!topic/mojolicious/f1SLFXSGRVkで、「<%= __FILE__%>」を使用することをお勧めします。 – simbabque
@simbabqueラッパーテンプレート(レイアウト)で使用するとうまくいきません。 – simone
の質問を参照してください。Sriはスレッドでコードの臭いをやっているとも言います。彼らはあなたが今それを行うことを可能にするものを実装していないようです。 – simbabque