我有:jquery1.6.min,jquery-tmpl.js(最新测试版)和knockout-1.2.0.js。我使用的是一个非常简单的示例,但是我无法获取jquery模板进行渲染,我无法弄清楚为什么,简单地说我可以通过使用firebug扫描dom来看到dom中的元素 - 我有一些tmp =匿名(jquery,$ item) )出现但数据不会在dom内呈现。
模板:
<script id="bookTemplate" type="text/x-jquery-tmpl">
<h2>${title}</h2>
price: ${formatPrice(price)}
</script>
jscode:
<script type="text/javascript">
$(document).ready(function() {
// Create an array of books
var books = [
{ title: "ASP.NET 4 Unleashed", price: 37.79 },
{ title: "ASP.NET MVC Unleashed", price: 44.99 },
{ title: "ASP.NET Kick Start", price: 4.00 },
{ title: "ASP.NET MVC Unleashed iPhone", price: 44.99}];
function formatPrice(price) {
return "$" + price.toFixed(2);
}
// Render the books using the template
$('#bookTemplate').tmpl(books).appendTo('#bookContainer');
});
</script>
答案 0 :(得分:0)
window.formatPrice = function formatPrice(price) {
return "$" + price.toFixed(2);
}
您在模板中调用formatPrice
,但在闭包中定义了该函数。为了能够做到这一点formatPrice
必须在全球范围内。一种简单的方法是将函数分配给windiw.formatPrice