a7o*_*ton 2 template-toolkit dancer
我有一个数组,我传递给TT文件,用于填充导航栏.
我正在使用主模板作为主体内容的基础和子模板.
我想知道是否可以声明'主模板应该总是接收这个数组',而不是每次加载视图时都必须传递这个数组(哦,是的,我正在使用Dancer btw:P),ex :
get '/' => sub {
template 'index', { for_all_i_know => $this_never_changes }
}
get '/about' => sub {
template 'about', { for_all_i_know => $this_never_changes }
}
Run Code Online (Sandbox Code Playgroud)
而不是那样做,有没有办法清理它?就像是:
bind template 'main' { for_all_i_know => $this_never_changes };
Run Code Online (Sandbox Code Playgroud)
那样我就可以这样做:
get '/' => sub {
template 'index';
}
Run Code Online (Sandbox Code Playgroud)
并且主模板仍会加载变量'for_all_i_know'
小智 5
是的,你想在钩子中声明这些变量.例如,在您的主要课程中:
hook 'before_template_render' => sub {
var helpdesk => 'help@example.com';
};
Run Code Online (Sandbox Code Playgroud)
然后在您的视图或布局模板中,您可以访问以下内容:
<p> For assistance please contact us at <% vars.helpdesk %>.
Run Code Online (Sandbox Code Playgroud)
......无需明确传递它.