1

我将 Perl 与DancerTemplate 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)。任何提示/想法?

4

2 回答 2

0

你忘记了结束 /li。此外,您在 hashrefs 方面滥用 FOREACH。

尝试这个:

 <ul>
   <% FOREACH track IN tracks %>
     <li>
       The key is: <% track.key %>
       The filename is: <% track.value.filename %>
     </li>
   <% END %>
 </ul>

有关 FOREACH 的完整文档,请访问此处:

http://www.template-toolkit.org/docs/manual/Directives.html#section_FOREACH

于 2013-12-09T18:00:46.143 回答
0

Dancer 默认不使用 TemplateToolkit,而是一个外观类似的模板引擎,不支持 TT 标签。挖掘配置文件并将模板引擎配置为 TT 解决了这个问题。

于 2013-12-25T16:49:12.600 回答