2012-06-29 2 views
0

내가 준비에, 내 페이지에 다음과 같은 한 핸들 바 템플릿에 표시되지 :JSON 데이터를 얻을 수 있지만,

<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> 

다음과 같은 자바 스크립트 아래에 발사 :

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 트리에서 몇 층입니다 (스포츠 -> 리그 -> 운동 선수) . API 결과에서이 데이터를 추출하는 방법에 대해 이해할 수없는 점은 무엇입니까?

답변

0

시도 뭔가 기본적으로 자연의 비동기 때문에 : 또한

$.getJSON("http://api.espn.com/v1/sports/baseball/mlb/athletes?apikey=axfy7dvwqzktu28srdjna8ta", function(data) { 
     alert('Load was performed.'); 
     $("#result").html(template(data.sports[0].leagues[0].athletes));   
}); 

, 중요한 (!) 참고 : 당신은 당신의 apiKey에 붙여있다. 나는 그걸 비밀로하고 싶다고 생각해.

+0

Firebug 콘솔에서 "data.sports is undefined"오류가 발생합니다. – brianrhea

+0

여기서 해결할 수 있습니다. 저 자신은 핸들 바 템플릿을 렌더링하기 위해 외부 json 데이터를 얻으려고합니다. 고마워요 – noobcode

+0

$ ("# 결과"). html (템플릿 (data.sports [0]. 리그 [0])); .athletes 부분없이 –

1

$ .getJSON을 잘못 사용하고 있습니다. 데이터를 반환하지는 않지만 오히려 성공 함수를 호출하고 (여기서 내가 경고한다고 경고하는 곳) 데이터를 전달합니다. html 인구를 success 콜백으로 이동하십시오.

이를 위해 AJAX 요청이 같은

+0

아, 그래, 네가 무슨 뜻인지 알 겠어. 왜냐하면 $ ("# result") .html (template (data)); 데이터가로드되기 전에 이미 실행 된 것입니다. 그러나 나는 그것을 시도했지만 여전히 작동하지 않았다. – brianrhea

0

$.get()$.getJSON()으로 변경할 수없는 경우 성공 콜백에서 JSON.parse(theData)을 사용해야합니다. 그렇지 않으면 템플릿에 렌더링 할 데이터가 없습니다. (당연한 일이지만, 그 상황에 처했을 때 나는 잠시 나 걸렸다.)

관련 문제