【发布时间】:2012-07-22 16:49:41
【问题描述】:
使用模板工具包我想出了以下内容。 (我在一个页面上多次运行此模板。)
<table>
<tr>
<th>Title</th>
</tr>
[% FOREACH t = Testing %]
[% IF t.isEven %]
<tr><td>Goodbye World</td></tr>
[% ELSE %]
<tr><td>hello world</td></tr>
size() = [% loop.size %]</br>
max () = [% loop.max %]</br>
index () = [% loop.index %]</br>
count () = [% loop.count %]</br>
first () = [% loop.first %]</br>
last () = [% loop.last %]</br>
prev () = [% loop.prev %]</br>
next () = [% loop.next %]</br>
[% END %]
[% END %]
</table>
[% myJS %]
输出这个。 (为了节省空间,我只包括了第一个和最后一个 tr)。
<table>
<tr>
<th>Title</th>
</tr>
<tr class="1"><td>hello world</td></tr>
size() = 5</br>
max () = 4</br>
index () = 0</br>
count () = 1</br>
first () = 1</br>
last () = 0</br>
prev () = </br>
next () = HASH(0x1d6daad0)</br>
<tr class="4"><td>hello world</td></tr>
size() = 5</br>
max () = 4</br>
index () = 4</br>
count () = 5</br>
first () = 0</br>
last () = 1</br>
prev () = HASH(0x1cbfda20)</br>
next () = HASH(0x1d6e9c10)</br>
</table>
<script src ="js/my.js"></script><table>
一遍又一遍,直到我的循环完成。有没有办法只在页面上包含 [% myJS %] 一次?因为是同一个脚本?
【问题讨论】:
-
它只在输出中出现一次。 (并且您的 HTML 需要引起 validator 的注意
-
@Quentin 它一遍又一遍地显示
-
我也不明白问题出在哪里。发布更多输出。否则我们看不到你的意思。
-
我认为您的
</table>和[% myJS %]标记可能错误地位于循环[% END %]块中。没有理由重复它(基于您提供的有限代码) -
@BrianPhillips 谢谢我已经查看了我的代码,并且我在页面上多次运行模板。所以 [% myJS %] 每个模板运行一次,这是不必要的有没有办法说只在页面上显示一次,而不管它在模板中运行多少次?
标签: perl template-toolkit