2011-07-16 7 views
0

Grails remoteLinkを使用してAjaxでサーバーに電話をかけようとしています。コードは以下の通りです:Grails remoteLink

def recommend = { 
       . 
       . 
       . 
    def jsonList = [artist: "${params.artist}", 
      location: [ 
       lat:"53.872715", 
       lng:"-1.372895"] 
      ] 

    render jsonList as JSON 
} 

とJavaScript関数は次のとおりです:

<g:remoteLink controller="event" action="recommend" id="1" onSuccess="recommend(e)" params="[artist:searchedArtist]"> 
    Recommend 
</g:remoteLink> 

コントローラがある

function recommend(response){ 
    var recommendedResults = eval('(' + response.responseText + ')'); 

    var point = new google.maps.LatLng(${recommendedResults.location.lat}, ${recommendedResults.location.lng}); 
    var myMarkerOptions = { 
     position: point, 
     map: map 
     }; 
    var marker = new google.maps.Marker(myMarkerOptions);  
} 

私の問題があることはありませんれるjavascript関数)(お勧めということですと呼ばれる。 考えていますか?どうもありがとう。

UPDATE

私はちょうどライン気づい:

var point = new google.maps.LatLng(${recommendedResults.location.lat}, ${recommendedResults.location.lng}); 

は右ではなかったです。だから、ちょうどデバッグ目的のために、私はこのような "recommend()" javascript関数を試しました:

function recommend(response){ 
    alert.window("Foo"); 

    } 

まだ動作しません。アラートはポップアップしません。

HTMLソースに表示されますremoteLinkのコード・フラグメントは、次のとおりです。

<a href="/Ontourtest/event/recommend/1?artist=deftones" onclick="new Ajax.Request('/Ontourtest/event/recommend/1',{asynchronous:true,evalScripts:true,onSuccess:function(e){recommend(e)},parameters:'artist=deftones'});return false;">Recommend</a> 
+0

このコードの結果HTMLを表示できますか? –

+0

私はremoteLinkの結果htmlを更新しました。ありがとう –

+1

あなたは100%応答がブラウザに届いていますか? Firebugのようなツールを使って? – Gregg

答えて

0

私は問題はアヤックスではなかったことが分かりました。 Javascriptの機能では間違いでした。私はwindow.alert()の代わりにalert.window()と呼んでいました。 FirebugのチップGreggに感謝します。あなたがするonSuccessとONFAILURE機能のGrailsでだけそれを理解データを渡す必要があります

< g:remoteLink controller="event" action="recommend" id="1" onSuccess="recommend(data)" params="[artist:searchedArtist]"> Recommend </g:remoteLink>

0

私は完全にあなたの問題を理解のために、コードを変更

してください。