【发布时间】:2013-12-26 00:49:12
【问题描述】:
我将 Perl 与 Dancer 和 Template Toolkit 一起使用。
我正在将 hashref 传递给我的模板。
这是它的构建方式,从一个数组 (@musicList):
my $hashrMusic = {};
my $intCount = 0;
foreach my $track ( @musicList ) {
$hashrMusic->{ $intCount } = $track;
$intCount++ ;
}
这是Dumper 版本的哈希:
$VAR1 = {
'1049' => '09 Faruk\'s Funk (Matt Stein + Nickodemus Rework).mp3',
'127' => '45 There She Goes.mp3',
'71' => 'Kenny Wayne Shepherd - One Foot On The Pass.mp3'
};
这是我将 hashref 传递给模板的方式:
template 'scan.tt', {
'countTracks' => scalar keys %$hashrMusic,
'tracks' => $hashrMusic,
'dump' => Dumper($hashrMusic),
}
现在我正在尝试使用以下 TT 代码循环遍历 hasref 以显示它:
<ul>
<% FOREACH track IN tracks %>
<li><% track.value %></li>
<% END %>
</ul>
这不会产生任何输出(但countTracks 可以,就像dump 一样)。有什么提示/想法吗?
【问题讨论】:
-
<ul> <% FOREACH track IN tracks.keys.nsort %> <li><% track.filename %> <% END %> </ul> -
@jlareau,也不起作用。在您提出的解决方案中,
track应该是关键,但它是空的。<ul> <% FOREACH i IN tracks.keys.nsort %> <li> <% $i %> </ul>也不起作用。 -
你为什么使用 $ 符号?
-
尝试:foreach track in tracking 然后使用track.filename
-
我正在使用 $ 符号,就像在以下 Dancer 文档中一样:metacpan.org/pod/Dancer::Tutorial#Our-first-route-handler
标签: perl template-toolkit dancer