HTML :: Template <tmpl_if>阻止被跳过</tmpl_if>

时间:2012-08-03 05:52:12

标签: html perl templates

我无法让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
      }
    ];

非常感谢任何帮助 - 过去一小时我一直在反对它。

1 个答案:

答案 0 :(得分:1)

来自fine manual

  

<TMPL_IF>标记允许您根据给定参数名称的值包含或不包含模板块。如果为Perl赋予参数值为true(如'1'),则该块将包含在输出中。如果没有定义,或者给出假值 - 比如“0” - 则跳过它。

您的所有complete都为零,因此<TMPL_IF>不会显示任何内容。您可能希望显示“else”分支,但您没有任何<TMPL_ELSE>分支,您有<TMPLE_ELSE>。修复拼写错误并重试。