我有一个帖子路由,它返回params用于特定模板(actions.tt)。在该模板中,我使用DirectoryView插件加载一个div(使用jQuery)和一个目录的视图(dirmain.tt)。我的问题是我需要在呈现主模板(action.tt)之前将一个参数传递给DirectoryView模板。参数(dev)需要包含在目录列表中。
Perl部分:
Use Dancer;
....
post "/" => sub {
template 'actions.tt', {
'dev' => param('dev'),
};
模板:
actions.tt
....
<div id="dir">
<script type="text/javascript">
$('#dir').load('/files/[% dev %]');
</script>
</div>
....
dirmain.tt
....
how do I pass [% dev %] here before the action.tt is rendered by the browser?
....
使用某种钩子会实现这个吗? 非常感谢您的帮助。谢谢!
答案 0 :(得分:2)
params是一个提供哈希值的函数,因此params(“dev”)不会给你任何东西。这样更好:
template 'actions.tt', {
'dev' => param->{dev},
}
但是在Dancer中,默认情况下会在模板中导出一些变量,如params,request和session。因此,您可以将“模板”之后的{}留空并在模板中使用它:
$('#dir').load('/files/[% params.dev %]');