我在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>现在,我希望me散列可以在javascript中访问。
发布于 2012-11-27 14:00:37
有几个TT插件可以做到这一点,其中任何一个都比将原始perl嵌入到模板中更好。就我个人而言,我更喜欢JSON::Escape,但还有一些其他的。在写TT的5年多的时间里,我几乎每天都在写,我从来没有使用过[% PERL %]指令。不过,我想我不是在写CGI。YMMV.
[%- USE JSON.Escape( pretty => 1 );
SET me = { id => 'abw', name => 'Andy Wardley' };
...
-%]
<script>
function callme() {
var me = [% me.json %]
...
</script>发布于 2012-11-23 20:47:39
尝试在CPAN中使用JSON。它是JavaScript Simple Object Notation,您可以直接在JavaScript中使用它。
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',
},
};
print encode_json($vars->{'me'});输出:
{"name":"Andy Wardley","id":"abw}https://stackoverflow.com/questions/13529284
复制相似问题