eri*_*bae 7 javascript handlebars.js
好.我的HTML如下所示.
<div id="json"></div>
<div id="content-placeholder">
<script id="some-template" type="text/x-handlebars-template">
<table>
<thead>
<th>col 1</th>
<th>col 2</th>
</thead>
<tbody>
{{#results}}
<tr>
<td>{{col_1}}</td>
<td>{{col_2}}</td>
</tr>
{{/results}}
</tbody>
</table>
</script>
</div>
Run Code Online (Sandbox Code Playgroud)
我通过Handlebar.js填充上面的内容,并从服务器接收数据.这是代码.
$.get(get_data_url, function(data)
{
$('#json').empty().append(data);
var rows = eval('(' + data + ')');
var source = $("#some-template").html();
var template = Handlebars.compile(source);
$("#content-placeholder").empty().append(template(rows));
});
Run Code Online (Sandbox Code Playgroud)
当代码第一次运行时,它看起来很好.但是当我第二次调用$ .get(等等)时,模板不会使用新数据刷新.
我还打印出整个数据字符串,以确保从服务器刷新数据.
当我检查我的Chrome时,它告诉我"未捕获的TypeError:无法调用方法'匹配'为null".
它与"编译"有关吗?
你第一次这样做:
$("#content-placeholder").empty()...
Run Code Online (Sandbox Code Playgroud)
你<div>变成了这个:
<div id="content-placeholder">
</div>
Run Code Online (Sandbox Code Playgroud)
而你的模板已经消失了.移动模板:
<script id="some-template" type="text/x-handlebars-template">
...
</script>
Run Code Online (Sandbox Code Playgroud)
到了外面的某个地方#content-placeholder.
| 归档时间: |
|
| 查看次数: |
7539 次 |
| 最近记录: |