【发布时间】:2011-10-25 06:22:48
【问题描述】:
如何过滤 Template Toolkit 中动态生成的列表中的某些项目? 我有一个 id 列表(也是动态生成的)和一个要排除的 id 列表,我只需要获取未排除的 id。最好的方法是什么? 示例代码:
[% SET ids = [1,2,4,10,11,12,13,17,19,20,21,50,51] %]
[% SET id_excluded = [10,11,13,20,50] %]
[% FOREACH pid IN ids %]
[% IF ?code to filter the ids? %]
[% pid %]
[% END %]
[% END %]
【问题讨论】:
-
为什么不将过滤后的内容传递给模板?
-
我现在实际上正在这样做,但我的第一个想法是在模板中进行过滤,而在 Perl 中,使用智能匹配运算符 (~~) 很容易做到这一点,我很惊讶在 TT这不是那么容易。我试图寻找答案,但在这里没有找到。
-
当前通用的 TT 版本 (2.x) 早于 perl 5.10,当时引入了智能匹配运算符。通常也会在 pre-smart-match perl 中使用 grep {} 结构。
标签: perl template-toolkit