有没有办法将变量绑定到模板工具包模板?

时间:2014-09-12 21:09:08

标签: template-toolkit dancer

我有一个数组,我将其传递给用于填充导航栏的TT文件。

我使用主模板作为主体内容的基础和子模板。

我想知道是否可以声明主模板应始终接收此数组'而不是每次加载视图时都必须传递此数组(哦是的) ,我使用的是舞者btw:P),例如:

get '/' => sub {
    template 'index', { for_all_i_know => $this_never_changes }
}

get '/about' => sub {
    template 'about', { for_all_i_know => $this_never_changes }
}

而不是这样做,有没有办法可以清理它?类似的东西:

bind template 'main' { for_all_i_know => $this_never_changes };

我可以这样做:

get '/' => sub {
    template 'index';
}

主模板仍会加载变量' for_all_i_know'

1 个答案:

答案 0 :(得分:5)

是的,你想在钩子中声明这些变量。例如,在您的主要课程中:

hook 'before_template_render' => sub {

  var helpdesk => 'help@example.com';

};

然后在您的视图或布局模板中,您可以访问以下内容:

<p> For assistance please contact us at <% vars.helpdesk %>. 

...无需明确传入。