私のページには次のものがあり、次の準備ができています。
<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"}
] }
「アスリート」キーは、JSON ツリーの 2 層下にあります (スポーツ -> リーグ -> アスリート)。API の結果からこのデータを抽出する方法について、私が理解していないことは何ですか?