2012-03-23 2 views
0

이 질문의 멍청한 생각을 변명 해주세요.json on homepage load

나는 마커 위치에서 찍은 사진이 포함 된 infoBox를 클릭하면 마커가있는 큰 Google지도가있는 프로젝트가 있습니다. 또한 사용자가 photos/show.html.erb보기에서 개별 사진을 볼 수있는 photo # show 작업이 있습니다. 나는 최근에 각 사진에 대해 "tweet"와 "FB-like"버튼을 통합했습니다. 그래서 지금 나는 "www.photoshowisus.com/photos/34"와 같은 URL을 클릭 한 트위터 또는 FB로부터 내 사이트에 들어오는 시청자를 가질 가능성이 훨씬 더 높습니다.

이제 사진 # 표시 동작을 변경하여 사진과 마커가 별도의보기가 아닌 홈 페이지 맵에 표시되도록하고 싶습니다.

사진 # show action에서 집보기를 렌더링하는 것은 문제가되지 않습니다. (나는 많은 멍청한 놈이 아닙니다.)하지만 두 가지 질문이 있습니다. 먼저, 서버 photo # show 응답은 id 매개 변수에서 요청 된 사진의 'pages/home'과 json을 모두 어떻게 렌더링합니까? 중첩 된 레이아웃으로 맵을 설정하여 홈 페이지를 전혀 렌더링 할 필요가 없지만 json 객체를 내 application.js 코드로 전달하는 방법이 필요합니다.

두 번째로, 내 application.js 코드에서 json 객체를 "잡아"어떻게 잡을 수 있습니까? .ready()와 같은 이벤트를 통해 그걸 얻을 수있는 방법이 있습니까? 참고, 나는 이미 json 객체에 액세스하면 자바 스크립트 루틴을 사용하는 것이 좋다.

미리 감사드립니다.

답변

1

문서 준비가 된 jQuery의 .getJSON()을 사용하여 Ajax를 가져 오는 것은 어떻습니까?

$(function(){ 
    $.getJSON("http://yourdomain.com/path/to/json", function (data){ 
     // Do what you like with your JSON available in the data-variable 
    }); 
}); 
+0

Christofer, yep. 그것이 현재 솔루션을 구현하는 방법입니다. 유일한 문제는 두 개의 서버 왕복이 필요하다는 것입니다. 첫 번째 라운드에서 json을 렌더링 할 수있는 솔루션이 있기를 바라고 있습니다. –

+0

@chuckw 페이지가 서버 측에서 생성 될 때 서버에서 JSON을 생성하고 페이지의 JavaScript 변수에 저장하도록 할 수 있습니다. 변수는 JS 파일로 액세스 할 수 있습니다. (또는 생각하십니까?) .js 파일을 .rb 파일 (또는 루비 확장자)로 변경하고 JSON을 생성하여 변수를 서버에서 보내기 전에 JavaScript 파일에 저장하십시오. 자바 스크립트 파일을로드 할 때'type = "text/javascript"'를 지정하면 브라우저는 다른 파일 확장명을 사용하는 것에 신경 쓰지 않을 것입니다. –

+0

js 변수에 JSON을 저장하고 제안한 것처럼 페이지에 전달합니다. js 변수에 액세스하는 것은 클라이언트 측에서 아무런 문제가되지 않습니다. 그것은 재미있는 js 인라인을 생성하는 약간 재미를 느낀다. 그러나 그것은 트릭을한다! 감사. –