使用模板工具包我已经提出了以下内容。 (我在一页上多次运行此模板。)
<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%]一次?因为它是相同的脚本吗?
答案 0 :(得分:1)
您在此处向我们展示的代码仅显示my.js行一次。它在任何循环之外,因此不可能多次显示。
如果您不止一次显示它,那么您就不会使用您向我们展示的代码。或者,示例中的代码周围有更多代码。你是否有另一个显示多个表的循环?
通常,您的问题的解决方案是将显示Javascript文件的代码移动到任何循环之外 - 因此它只显示一次。但是,如果由于某种原因这不是一个选项(我真的不明白为什么它不会)那么你可以使用循环变量只在第一个(或者可能是最后一个)迭代上输出Javascript循环。像这样:
[% FOR var IN list;
var.something_useful;
myJS IF loop.first;
END %]