写了一个小程序,使用了一段别人的 JavaScript 来做表格外部排序。但发现只要 JavaScript 经过我的 Template TT 的输出后,就变样了,不能正常的使用这个 JavaScript 了。使用 Diff 的命令查看后发现原来是 Template Toolkit 给 $ 的符号,当做默认变量了.
解决方法只能在 New 一个新的 TT 时。选择不默认内插。只内插指定的符号中的内容 [% %] .
默认我使用 Template Toolkit 来 New 的方法如下:
my $tt = Template->new({
INCLUDE_PATH => './tmpl',
INTERPOLATE => 1,
}) || die "$Template::ERROR\n";这样是打开了内插的功能,只要整个 tt 的模板文件中出现了 $ ,就会被内插来检查变量是否存在。。。但很不巧的是,JavaScript 中有变量,一起内插了。所以只能关掉这个功能,给这个
INTERPOLATE 0
值设置成 0.
如果 interpolate 设置成 1. JavaScript 中的变量,如:
t.h=T$$('thead',T$(e))[0].rows[0]; t.w=t.h.cells.length;输出后为:
t.h=T('thead',T(e))[0].rows[0]; t.w=t.h.cells.length;。。。有意思吧。。