【问题标题】:Template Toolkit display results once foreach loop模板工具包显示结果一次 foreach 循环
【发布时间】:2013-03-08 15:14:30
【问题描述】:

我目前正在使用 Template Toolkit,在 TT 之前从未学习或使用过。

例如,我有 10 个文件,5 个日期为 dd/mm/2011 年的文件和 5 个日期为 dd/mm/2012 的文件。我只需要显示一次年份。我尝试使用 foreach 循环,但不是显示 2011 5 次和 2012 5 次,我希望它只显示 1 次。

我需要实现的是获取年份并使用它来创建一个链接来显示那一年的那些文档。

希望你们理解,请一些好心人帮助我。 =x

【问题讨论】:

  • 或许在这种情况下更重要的是,向我们展示您传递给 TT 的数据结构。 (虽然显示代码可能也涵盖了...)

标签: perl template-toolkit


【解决方案1】:

您将在 TT 中使用与在任何其他编程语言中使用的类似方法。记下您看到的上一年,如果不同,则仅打印当前的。

这是一个简单的示例,您可以使用 tpage 运行。

$ cat years.tt 
[%- dates = [ '01/11/2012', '01/12/2012', '01/01/2013', '01/02/2013'];
    lastyear = '';
    FOREACH date IN dates;
        bits = date.split('/');
        IF bits.2 != lastyear;
            bits.2 _ "\n";
        END;
        bits.0 _ '/' _ bits.1 _ "\n";
        lastyear = bits.2;
    END -%]
$ tpage years.tt
2012
01/11
01/12
2013
01/01
01/02

但您几乎肯定会考虑将更合理的数据结构传递给 TT。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 2017-01-04
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多