2011-11-08 1 views
1

:Rails3 앱에서 D3 라이브러리를 통해 로컬 JSON 객체를로드하는 방법은 무엇입니까? 다음 코드라는 파일 choropleth.js에서

d3.json("assets/data/us-counties.json", function(json) { 
counties.selectAll("path") 
    .data(json.features) 
    .enter().append("svg:path") 
    .attr("class", data ? quantize : null) 
    .attr("d", path); 
}); 

내가로드되지 않습니다로드 노력하고있어 JSON 객체입니다. 작동의 (뷰를 기준으로의 .js 파일에 상대적 절대,,, 등) 나는 경로의 모든 변종을 시도했습니다

choropleth.js:18 Uncaught TypeError: Cannot read property 'features' of null 

및 없음 : 나는 다음과 같은 오류가 발생합니다. 저는 d3 라이브러리를 사용하고 있습니다 만,이 부분에서 그 부분을 담당하지 않는다고 생각합니다. "로컬 .json 파일을로드하도록 지정하는 URL은 무엇입니까?"

더 많은 정보가 필요하면 알려 주시기 바랍니다. 가능한 경우 답변을 모르는 경우에도 자세한 정보로 직접 안내해주십시오. 나는 이것에 대한 연구보다는 기꺼이한다. 감사합니다 ...

+0

앱의 자산에서 서버의 로그에 오류가 있습니까? 서버의 디렉토리 트리에서 JSON 파일은 어디에 있습니까? 옳은 길을 가셨습니까? –

+0

JSON은 카운티 경계 좌표에 대한 데이터입니다. 나는 assets/data 디렉토리 (데이터 디렉토리를 만든 후)에 넣었다. 이 파일은 app/assets/data/us-counties.json에 있습니다. 나는 그것에 대한 어떤 경로도 설정하지 않았다. – jclement

+0

"d3.json"을 호출하고 "json"매개 변수를 전달하지 않습니다. 그것이 null 인 이유입니다. – megas

답변

0

콜백 함수가 null로 전달 된 경우 파일을로드하지 못했기 때문입니다. 이에 대한 여러 가지 원인이있을 수 있습니다. 파일이로드되지 않는 이유를 파악하는 가장 좋은 방법은 WebKit의 개발자 도구와 네트워크 관리자를 사용하는 것입니다.

예를 들어 올바른 URL이없는 경우 404 오류가 표시되고 요청한 리소스가 빨간색으로 표시됩니다. 서버가 오류가있는 파일을 생성하지 못하면 대신 500 오류가 표시 될 수 있습니다.

마찬가지로 로컬 파일 (주소 표시 줄에 file : // URL 포함)을 표시하고 d3.json을 통해 다른 로컬 파일을로드하려고하면 브라우저에 ' XMLHttpRequest를 사용하여 로컬 파일에 액세스 할 수 있습니다. D3's README에는이 오류를 회피하기 위해 웹 서버를 시작하는 지침이 있습니다.

1

내 대답은 1418350 질문 참조 : 기본적으로 당신이 json으로 콜백에 대한 두 개의 인수를 제공 할 필요가 예를 들어 오류,되는 첫 번째 :이 상태 JSON 파일을로드하려고처럼 보이는

d3.json("world-countries.json", function(error, json) { 
    // your code 
} 
+0

이 실수는 너무 빈번합니다 ... – VividD

관련 문제