我无法让HTML::Template的<TMPL_IF>
块运行起来 - 似乎我的模板只是完全跳过该代码。
<TMPL_LOOP NAME=DATA>
<TMPL_VAR NAME=complete><br>
<TMPL_IF NAME="complete">
<!-- Some HTML here -->
<TMPLE_ELSE>
<!-- Some other HTML here -->
</TMPL_IF>
</TMPL_LOOP>
TMPL_VAR
行显示预期值,但下面的块中没有任何内容显示出来。我传入模板的数据结构是:
$VAR1 = [
{
'code' => 26,
'message' => 'Start building sensors for Jarvis',
'complete' => 0
},
{
'code' => 33,
'message' => 'Machine learning to determine if actions are appropriate or not',
'complete' => 0
},
{
'code' => 37,
'message' => 'Play by genre audioserv method',
'complete' => 0
}
];
非常感谢任何帮助 - 过去一小时我一直在反对它。
答案 0 :(得分:1)
来自fine manual:
<TMPL_IF>
标记允许您根据给定参数名称的值包含或不包含模板块。如果为Perl赋予参数值为true(如'1'),则该块将包含在输出中。如果没有定义,或者给出假值 - 比如“0” - 则跳过它。
您的所有complete
都为零,因此<TMPL_IF>
不会显示任何内容。您可能希望显示“else”分支,但您没有任何<TMPL_ELSE>
分支,您有<TMPLE_ELSE>
。修复拼写错误并重试。