Perl Dancer, Dancer :: Plugin :: DirectoryView, Template Toolkit и совместное использование параметров в шаблонах - PullRequest
1 голос
/ 29 декабря 2011

У меня есть пост-маршрут, который возвращает параметры для использования в определенном шаблоне (actions.tt).В этом шаблоне я загружаю div (используя jQuery) с представлением (dirmain.tt) каталога с помощью плагина DirectoryView.Моя проблема в том, что мне нужно передать параметр в шаблон DirectoryView перед рендерингом основного шаблона (action.tt). Параметр (dev) необходимо включить в список Directory.

Часть 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?
....

Будет ли использование какого-либо крючка выполнить это?Ваша помощь очень ценится.Спасибо!

1 Ответ

2 голосов
/ 03 февраля 2012

params - это функция, которая доставляет хэш, поэтому params ("dev") ничего вам не даст.Это лучше:

template 'actions.tt', {
   'dev' => param->{dev},
}

, но в Dancer некоторые переменные, такие как params, request и session, экспортируются по умолчанию в шаблоны.Таким образом, вы можете оставить {} после 'template' пустым и использовать это в своем шаблоне:

$('#dir').load('/files/[% params.dev %]');
...