我有一个标准的Perl Dancer应用程序,使用Template :: Toolkit作为渲染引擎,有两个路径:
get '/' => sub {
template 'index';
};
get '/foo' => sub {
template 'foo';
};
我的views/templates/main.tt
包含以下行:
<title><%= title %></title>
我想将title var的值设为页面'/'上的“我的网站”,以及页面'/ foo'上的“Foo - 我的网站”。
我知道我可以将这些值放在控制器文件中,如下所示:
template 'index', { title => 'My Site' };
但我想在相应的模板文件views/index.tt
和views/foo.tt
中指定它们。
我该怎么做?
感谢。
答案 0 :(得分:2)
这个documentation清楚地解释了如何配置您的应用程序,以便在您的布局中提供模板中定义的变量。
对于标题标记,您可以使用变量template.name
节省在每个模板中定义标题的工作量。也许是这样的:
<title>
<% template.name.match('(\w+).tt').0.ucfirst %> - <% settings.sitename %>
</title>