我在
template toolkit框架中工作.我的tt文件中有一个perl哈希数据类型.我想将此哈希数据类型转换为javascript哈希数据类型.
码:
模板:
[% PERL %] use JSON qw(encode_json); my $vars = { 'version' => 3.14,'days' => [ qw( mon tue wed thu fri sat sun ) ],'cgi' => CGI->new(),'me' => { 'id' => 'abw','name' => 'Andy Wardley',},}; my $json = encode_json($vars->{'me'}); [% END %] <script> function callme(){ var me = [% $json %] } </script>
现在我希望我的哈希值可以在javascript中访问
解决方法
有几个TT插件可以做到这一点,其中任何一个都比将原始perl嵌入模板更好.就个人而言,我更喜欢
JSON::Escape,但还有其他一些.在每天或多或少地写TT的5年多的时间里,我从未使用过[%PERL%]指令.我想,我不是在写CGI.因人而异.
[%- USE JSON.Escape( pretty => 1 ); SET me = { id => 'abw',name => 'Andy Wardley' }; ... -%] <script> function callme() { var me = [% me.json %] ... </script>