【问题标题】:jQuery template not showing data elementsjQuery模板不显示数据元素
【发布时间】: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


【解决方案1】:

我在使用 JSP 时遇到了同样的问题:使用 \$ 转义 EL 表达式

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签