簡體   English   中英

Perl(Dancer)和模板工具包-通過hashref循環

[英]Perl (Dancer) & Template Toolkit - looping thru hashref

我將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 )。 有任何提示/想法嗎?

您忘記了/ 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

Dancer默認情況下不使用TemplateToolkit,而是不支持TT標簽的外觀類似的模板引擎。 挖掘配置文件並將模板引擎配置為TT解決了該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM