2012-01-31 3 views
0

grails로 Ajax 비동기 콜백을 사용하려고합니다. 내 GSP 파일의 머리에서 나는이 : 몸에 grails remoteLink가 예상대로 작동하지 않습니다.

<g:javascript library="prototype" /> 

나는이 :

내 컨트롤러에
 <g:remoteLink controller="dashboard" action="showTime" update="time">Show the Time</g:remoteLink> 

    <div id="time"></div> 

내가 가진 :

def showTime = { 
     System.print("time"); 
     render "The time is "; 
} 

내가 기대하는 사업부 "시간" 내 gsp 파일에서 렌더링 된 텍스트 "시간은"으로 바뀝니다. 대신, 아무 것도 일어나지 않는 것 같습니다. System.print 때문에 내 컨트롤러가 작동하지만 아무것도 div에서 업데이트되지 않습니다.

페이지로드가 발생하여 prototype.js 페이지의 "element.dispatch is not event"라는 오류가 발생했습니다. 내가

<g:javascript library="prototype" /> 

을 제거하면 나는 더 이상 내가 잘못 여기서 뭐하는 거지 무슨 오류가 없지만 전체 페이지가/대시 보드에 쇼 타임

을 리디렉션?

감사 제이슨

+0

사용중인 Grails 버전은 무엇입니까? jquery 자바 스크립트 라이브러리를 사용해 보셨습니까? –

+0

안녕하세요 세스, 1.3.7을 사용하고 있습니다. 프로토 타입 대신 jquery를 사용하면 위 코드가 어떻게 바뀔까요? 아직도 AJAX에 익숙하지 않습니다. 감사합니다 – jason

+0

[jQuery 플러그인] (http://grails.org/plugin/jquery)이 설치되어 있으면 ajax 콜백을 처리하는 jquery 공급자입니다. 플러그인을 사용하려면 gsp 파일에서 **''대신''**를 사용할 것입니다. –

답변

0

둘 다 JQuery와 (또는 다른 JS 라이브러리) 및 프로토 타입 라이브러리를 사용하고 있습니까? 이 문제는 대개 jquery.js와 prototype.js를 모두 사용하면 발생합니다. jquery가로드되고있는 것을 볼 수는 없습니다. (아마도 레이아웃이나 < body에 있습니다.) firebug를 사용하여로드 된 JS 라이브러리를 확인하십시오.

둘 다로드하는 경우 jquery를 주석 처리하고 프로토 타입을 사용하십시오. < div>를 업데이트해야합니다. 도움이 되었기를 바랍니다.

관련 문제