【发布时间】:2012-02-02 19:27:32
【问题描述】:
我正在尝试让 jQuery 模板功能正常工作,但最终走到了死胡同。根据我的所有调查,下面的代码清单应该可以工作,我希望得到:
- file1.txt, 123456, 2012-01-01
- file2.txt, 234567, 2012-01-02
- file3.txt, 345678, 2012-01-03
但我得到了
- ,,,
- ,,,
- ,,,
很明显,库正在加载并且代码正在运行,但由于某种原因它不会获取数据元素。无论浏览器如何,代码的行为都相同。我试过编译模板而不是,每个都有相同的结果。
我确定我遗漏了一些简单的东西,但我已经花了大约 8 个小时盯着例子(而且我已经没有那么多头发了!)。提前感谢您的任何帮助。
<html lang="en">
<head>
<title>jQuery Template Test</title>
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<script src="inc/jquery.tmpl.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
var exampleData = [
{ name: "file1.txt", size: "123456", date: "2012-01-01" },
{ name: "file2.txt", size: "234567", date: "2012-01-02" },
{ name: "file3.txt", size: "345678", date: "2012-01-03" }
];
var markup = "<li>${name}, ${size}, ${date}</li>";
$.template( "exampleTemplate", markup );
$.tmpl("exampleTemplate", exampleData).appendTo("#target");
});
</script>
</head>
<body>
<ul id="target"></ul>
</body>
</html>
【问题讨论】:
-
任何 javascript 控制台错误?
-
不——那是拉头发的部分!我没有关于这个问题的真正反馈,试图追查它......
-
我刚刚使用微软的 cdn ajax.microsoft.com/ajax/jquery.templates/beta1/… 在本地运行它并且它工作正常。
-
好吧,这是对我来说是一个简单而愚蠢的错误。我在 JSP 页面上使用此代码(作为更大的 servlet/jsp 应用程序的一部分)。服务器通过删除 ${name}、${size} 和 ${date} 引用来破坏 javascript,因此我看到的是空模板。一旦我将页面扩展名更改为 .html,它就可以正常工作。现在我不知道这是否可以补救,以便可以在 JSP 上使用模板,与需要发生的任何其他处理一起使用,但这是一个单独的问题。感谢杰克的鼓励,这正是我所需要的! :-)
-
作为后续,是的,模板可以正确插入到 JSP 的响应中,您只需像这样转义特殊字符:var markup="
- \$\{name \}
。再次感谢!
标签: javascript jquery templates