Я пытаюсь позвонить на сервер с помощью Ajax, используя Grails remoteLink. Код следующий:
<g:remoteLink controller="event" action="recommend" id="1" onSuccess="recommend(e)" params="[artist:searchedArtist]">
Recommend
</g:remoteLink>
Контроллер:
def recommend = {
.
.
.
def jsonList = [artist: "${params.artist}",
location: [
lat:"53.872715",
lng:"-1.372895"]
]
render jsonList as JSON
}
и функция javascript:
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 require () никогда не вызывается.
Какие-нибудь мысли? Большое спасибо.
UPDATE
Я только что заметил, что строка:
var point = new google.maps.LatLng(${recommendedResults.location.lat}, ${recommendedResults.location.lng});
был не прав. Так что просто для целей отладки я попытался использовать функцию javascript "require ()", например:
function recommend(response){
alert.window("Foo");
}
и до сих пор не работает. Предупреждение никогда не всплывает.
Фрагмент кода remoteLink, который появляется в источнике html:
<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>