1

特定のテンプレート (actions.tt) で使用するパラメーターを返すポスト ルートがあります。そのテンプレート内で、DirectoryView プラグインを使用してディレクトリのビュー (dirmain.tt) を含む div (jQuery を使用) をロードしています。私の問題は、メイン テンプレート (action.tt) をレンダリングする前に、DirectoryView テンプレートにパラメーターを渡す必要があることです。パラメーター (dev) をディレクトリ リストに含める必要があります。

パール部分:

Use Dancer;
....
post "/" => sub {
template 'actions.tt', {
    'dev' => param('dev'),
};

テンプレート:

アクション.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?
....

ある種のフックを使用すると、これが満たされますか? あなたの助けに感謝します。ありがとう!

4

1 に答える 1

2

params はハッシュを提供する関数であるため、 params("dev") は何も取得しません。これの方が良い:

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

ただし、Dancer では、params、request、session などの一部の変数がデフォルトでテンプレートにエクスポートされます。したがって、'template' の後の {} を空のままにして、テンプレートでこれを使用できます。

$('#dir').load('/files/[% params.dev %]');
于 2012-02-02T21:25:23.453 に答える