2013-03-09 5 views
49

몇 가지 간단한 데이터를 저장하기 위해 json 문서를 보관하고 싶습니다.이 문서를 요구하고 define() 호출에서 json 객체를 사용하고 싶습니다. 그래서 사용할 수 있습니다. 이것은 "비동기"호출이 아닙니다. 개발을 위해 있어야하지만 콘텐츠가 동적 인 API의 실제 비동기 호출과 달리 빌드시 파일을 컴파일하고 싶습니다.requirejs 정적 JSON 파일로드

+0

정확히 다음 질문은 무엇입니까? 내가 그걸로 아무 문제가 보이지 않기 때문에. –

+1

@ WillemD'haeseleer 글쎄, 어떻게해야할지 모르겠다. 나는 경로에'.json' 파일을 포함 할 수 없다. – ThomasReggi

답변

60

가장 쉬운 방법은 requirejs json 플러그인을 사용하는 것입니다. 이렇게하면 파일을 빌드에 포함시킬 수 있습니다.

require(['json!someFile.json'], function(data){ 
    ... 
}) 
// It does not actually need to be a .json extension, this will work to: 
require(['json!someFile'], function(data){ 
    ... 
}) 

당신이 당신의 r.js에서 파일을 포함하려면

이렇게 구축이 항상 당신이 그것을 추가해야 주 /의 JS 부트 스트랩 파일에 최적화되어 있음 : 여기

https://github.com/millermedeiros/requirejs-plugins

은 예입니다 include 옵션에

또한 js 텍스트 플러그인을 사용할 수도 있습니다. 일반적으로 템플릿 파일을로드하는 데 사용되지만 .json 파일도로드 할 수 있습니다.

https://github.com/requirejs/text

당신은 당신은 또한 자신의 JSON을 포장 할 수

JSON.parse
(즉이 필요 않다면 이전 버전의 브라우저를 지원하기 위해 json2.js 포함)에 다음 내용을 자기를 구문 분석해야합니다 정의()를 사용하면 전통적으로 요구할 수 있지만 실제 .json 파일로 제한되는 경우에는 작동하지 않습니다.

다른 옵션은 jquery 또는 무엇인가를 사용하여 텍스트 파일 트로프 아약스를 요구하는 것입니다.

$.get('somefile.json', function(data) { 
    // do something with your data 
}); 
+3

필자는'requirejs-plugins'을 가지고 갔고'json' 플러그인을 가지고 있습니다. 그것은 의존성으로'텍스트'를 사용합니다. 감사합니다! 방금 브라우저에서 requirejs로 작업하기 시작했습니다. 여전히 빌드 할 때 아약스를 사용하여 문서를 가져 오는 것을 막기를 바라고 있습니다. – ThomasReggi

+0

@ThomasReggi 내 정보에 대한 답변을 확인했습니다 –

+1

텍스트 사용에 문제가 있습니다! r.js와 결합하여 JSON 콘텐츠를 최적화 할 수 있습니다. 그냥 머리를 올려. – SimplGy

8

게시이 한는 대답으로 인해 :

  • 그것은 항상을 수행하기 때문에 질문을 사용자가 실제로 자신의 솔루션
  • 는 텍스트를 요구하는 것보다 보는 청소기의 사용 무엇 JSON.parse()를 참조하십시오.

RequireJS has a JSON plugin. 구문은 간단합니다 :

require(['json!someData.json'], function(data){ 
    ... 
}) 
+3

[ "json!/some/ajax/endpoint"]도 잘 작동합니다. – penguat

+2

로컬 파일을로드 할 수 있습니까? – Erik

+1

@erik 나는 보통 꿀꺽 거리기를 통해 웹 서버를 사용하여 로컬로 개발하므로 항상 http : // 또는 https : // URL을로드합니다. 당신도 똑같이하는 것이 좋습니다. file : // URL에 대해 묻는다면 잘 모르겠습니다. – mikemaccana