我是使用模板的新手,我有一个关于重用它们的问题。加载时,我得到模板和数据:
$(function() {
var source, content;
$.get('/templates/template.html', function(data) {
source = data;
})
$.getJSON("/data/data.php", function(data) {
content = data;
})
$(document).ajaxStop(function() {
window.template = Handlebars.compile(source);
$('#user-list tbody').html(window.template(content));
})
})
模板如下:
{{#users}}
<tr>
<td> {{name}} </td>
</tr>
{{/users}}
这是同一文件中的 HTML:
<div id="content-div">
<table id="user-list">
<thead></thead>
<tbody></tbody>
</table>
</div>
当我想追加一行时,我将如何重用这个模板?例如:
function loadMore() {
$.ajax({
type : 'POST',
url : '/data/more.php',
dataType : 'json',
success : function(data) {
$('#user-list tbody').append(window.template(data));
}
});
}
它获取数据但不会附加到tbody
. 为什么是这样?
更新:另外,是否可以将整个表结构这样放在模板文件中?
<table id="user-list">
<thead></thead>
<tbody>
{{#users}}
<tr>
<td> {{name}} </td>
</tr>
{{/users}}
</tbody>
</table>
只有在初始页面加载时,它才会拉入整个结构,但是当我想附加其他行时,它只会附加该<tr>
部分。
更新:也许是一个题外话的问题,但这通常是处理这种情况的正确方法吗?我设想一个充满模板的文件夹,我可以在需要时将其拉入并使用它们。通过 ajax 调用获取它们是否正确?