3

在大量使用 jQuery Tmpl 迁移我的旧 Web 界面后,我的一些模板已经停止工作。进一步的调查表明,模板不起作用是那些以 TR 标记开头和结尾的模板(即,将表行附加到现有表中)。源文本刚刚被 jQuery Tmpl 脚本删除!如果我在更广泛的上下文中使用 TR 标签,比如包装在表格中等,一切都会正常工作,但是一旦它们在隔离模板中使用,它们就会被消灭。

工作示例:

<script id="workingTemplate" type="text/x-jQuery-tmpl" >
    <table>
        <tr><td>this works</td></tr>
    </table>
</script>

不工作的例子:

<script id="notWorkingTemplate" type="text/x-jQuery-tmpl" >
    <tr><td>this does not work</td></tr>
</script>

第一个示例在使用 Firebug 检查时呈现完整的 HTML 代码,后者呈现一个空的 SCRIPT 标记。

可能与模板相关的新旧 Web 界面之间的差异是从 jQuery 1.5.2 到 1.8.2 的变化。我没有尝试运行低于 1.7.2 的任何东西,因为这是添加 .on() 函数的地方,并且新框架广泛使用了这种方法。

除了最明显的(=将模板框架更改为仍然维护的东西)之外,这个问题是否有任何解决方法?

编辑:从字符串加载模板时,内容保持不变,

 $.template( "tableRowTemplate",'<tr><td>this works</td></tr>');
 $.tmpl("tableRowTemplate", data).appendTo('TABLE#mytable TBODY');

但不幸的是对我没有好处,因为我的模板比示例(服务器端动态等)复杂一点。不过,它确实给出了一些提示。显然,是 jQuery Tmpl 的初始化,如果它不符合我不知道的内容,它会删除内容。也许是 jQuery.fn.domManip?

4

0 回答 0