5

我正在使用 perl 中的 TT,并尝试插入模板并处理一个变量,该变量本身包含 TT 指令。

所以,在脚本中我写的是:

$var{descr} = "[% pid = 1; INSERT plink.par %]";

然后在 TT 模板(收到 \%var)中:

[% BLOCK parsedDescr %]
[% descr %]
[% END %]
<p>[% INCLUDE parsedDescr %]

我期待 pid 变量设置为“1”,并插入 plink.par 文件。但相反,我在我的 html 页面上得到了变量 descr 的确切内容:

[% pid = 1; INSERT plink.par %]

即,该变量未被TT处理。

如何让 TT 处理它的内容?

4

1 回答 1

5

您可以使用eval 过滤器

<p>[% descr | eval %]

从链接的手册页:

eval 过滤器将块评估为模板文本,处理嵌入其中的任何指令。这允许模板变量包含模板片段,或者提供一些方法来从外部源(例如数据库)返回模板片段,然后可以根据需要在模板中对其进行处理。

于 2012-05-22T22:43:55.247 回答