Javascript jTemplates{#for}不在InternetExplorer7中工作,bug?

Javascript jTemplates{#for}不在InternetExplorer7中工作,bug?,javascript,jquery,jtemplates,Javascript,Jquery,Jtemplates,我在Internet Explorer 7中的{#for}方面做了很多努力,但仍然失败,而它在Firefox和Chrome(未经其他浏览器测试)中运行良好 我用一个非常简单的测试用例创建了一个,你能告诉我为什么它不能与IE7一起工作吗 $("#result").setTemplate('Test: {$T.test} <br/>N: {#for index = 1 to 10} {$T.index} {#/for}'); $("#result").processTemplate({

我在Internet Explorer 7中的{#for}方面做了很多努力,但仍然失败,而它在Firefox和Chrome(未经其他浏览器测试)中运行良好

我用一个非常简单的测试用例创建了一个,你能告诉我为什么它不能与IE7一起工作吗

$("#result").setTemplate('Test: {$T.test} <br/>N: {#for index = 1 to 10} {$T.index} {#/for}');

$("#result").processTemplate({ "test": 3 });
但在IE 7中,我只是

Test: 3
N:

编辑1:

在JSFIDLE之外的真实场景中,我总是会遇到一个javascript错误:length null或不是一个对象,这似乎与jTemplates调用jQuery get()有关,但在使用Firefox/Firebug进行调试时,我却无法使用IE进行正确调试


编辑2:

您也可以在开发者网站上在线尝试:在“Live edit”下,使用以下示例代码:

$("#result").setTemplate('Test: {$T.version}<br/>Ax: {#for index = 1 to 10} A{$T.index} {#/for}');

$("#result").processTemplate({"version": 4.243});
$(“#result”).setTemplate('Test:{$T.version}
Ax:{{T.index=1到10}A{$T.index}{{T.index}/for}); $(“#结果”).processTemplate({“版本”:4.243});
编辑3:

无需输入任何代码,只需访问IE7即可看到它失败

谢谢

我最终使用了,根据许多科技博客的说法,这可能是客户端模板的未来。 我还发现大多数移动浏览器(包括Blackberry OS 6)都支持jsRender

jsRender似乎支持jsTemplates的所有功能,但主要区别在于jsRender返回字符串(可以在没有jQuery的情况下使用)


我刚刚收到来自jTemplates的auhor Tomasz Gloc的一个快速错误修复,这将使我重新考虑客户端模板库。 这是:

>

第707行:

oper='{#foreach(函数(i){return i;})as'+RegExp.$1+'begin='1〕 +(RegExp.$2 | | 0)+'end='+(RegExp.$3 | |-1)+'step='+(RegExp.$4 ||1)+'extData=$T}'

改为:

oper='{#foreach TemplateUtils.LoopFunc=函数(i){return i、 };TemplateUtils.LoopFunc作为“+RegExp.$1+”begin=”+(RegExp.$2 | | 0)+'end='+(RegExp.$3 | |-1)+'step='+(RegExp.$4 | | 1)+' extData=$T}'

您还可以返回到版本0.7.8

很快,我将发布版本0.8.1,使用其他解决方案修复错误, 但仍然需要一些测试


这个问题在版本0.8.1中得到了解决

$("#result").setTemplate('Test: {$T.version}<br/>Ax: {#for index = 1 to 10} A{$T.index} {#/for}');

$("#result").processTemplate({"version": 4.243});