我的页面中有以下内容,准备好:
<div id="result"></div>
<script id="some-template" type="text/x-handlebars-template">
<table>
<thead>
<th>Name</th>
</thead>
<tbody>
{{#athletes}}
<tr>
<td>{{firstName}} {{lastName}}</td>
</tr>
{{/athletes}}
</tbody>
</table>
</script>
和下面的 JavaScript 触发:
var source = $("#some-template").html();
var template = Handlebars.compile(source);
var data = $.getJSON("http://api.espn.com/v1/sports/baseball/mlb/athletes?apikey=axfy7dvwqzktu28srdjna8ta", function() {
alert('Load was performed.');
});
$("#result").html(template(data));
我收到加载已执行的警报,我可以在 Firebug 中看到所有数据,但 #result div 不显示数据。
如果我用下面的纯文本替换 var 数据,它的所有功能都完全正确:
var data = { athletes: [
{firstName: "Josh", lastName: "Hamilton"},
{firstName: "Yu", lastName: "Darvish"},
{firstName: "Ian", lastName: "Kinsler"}
] }
“athletes”键位于 JSON 树中的几层(体育 -> 联赛 -> 运动员)。关于如何从 API 结果中提取这些数据,我有什么不明白的地方?