0

我只是在学习 Jquery 模板并逐步尝试不同的事情。现在我用单条目数据元素尝试了它,它工作正常。据我了解,如果我用数据数组替换数据,那么它将显示所有元素而不使用 {each} 标记。但在这种情况下,它只是出错了。在jQuery中。说k.nodes is undefined

这是一个小代码片段:

// my binding
$(document).ready(function () {
  $.tmpl("<div class = 'Test'>${Name}<div>", movies)
    .appendTo('#EmployeeContainer');
  $('#Template')
    .tmpl(movies)
    .appendTo('#EmployeeContainer');
});

// my data
var movies = [
  { Name: "The Red Violin", ReleaseYear: "1998" },
  { Name: "Eyes Wide Shut", ReleaseYear: "1999" },
  { Name: "The Inheritance", ReleaseYear: "1976" }
];

// part of my template from where Release year is coming
<script id = "Template" type ="text/templating">
  <div class = 'Test'>${ReleaseYear}<div>
</script>
4

2 回答 2

3

看起来您可能忘记了编译模板。

看看jquery.com上的第一个示例。

具体来说,你需要调用:$.template(...);来编译模板。

您已经获得了$.tmpl(...);呈现模板的部分。但是,您需要在渲染之前对其进行编译。

更新:主要错误是您缺少模板中的结束 div。你有一个更新的工作 jsfiddle<div>而不是这里。另外,记住这是一个插件,所以你需要下载插件</div>

于 2012-04-07T21:06:05.437 回答
0

我知道这是一个旧线程,但我最近遇到了同样的问题。如上所述,我尝试了 jsfiddle.net/7PcFC/8/,并在这些浏览器中得到以下结果:

火狐 29:工作

铬 34.0.1847.131 m:不工作

IE 9.0.8112.16421:不工作

对于 Chrome 和 IE,它只显示“Hello”

于 2014-04-30T15:19:57.347 回答