Начиная с g: функция remoteFunction в Grails 2.4.X является устаревшим, что я должен использовать вместо этого?


Поскольку g: remoteFunction устарела, что я должен использовать вместо этого? И пожалуйста, приведите пример.

2 4

2 ответа:

Вы должны использовать свои собственные функции javascript AJAX, так как они обеспечивают большую гибкость

Пример

Раньше было:

<input type="button" value="go!" onclick="${g.remoteFunction( controller:'my', action:'go', params:[..] )}"/>

Должно быть (например, в JQuery):

<g:javascript>
  function go(){
    $.ajax({ 
      url:'${g.createLink( controller:'my', action:'go', params:[..] )}',
      data:{ param1:param1 }
    });
  }
 </g:javascript>

 <input type="button" value="go!" onclick="go()"/>

Просто чтобы уточнить на Injecteers ответ на самом деле данные: {} это то, что публикует информацию к нему, так что может столкнуться с парами: [..]}:

<g:javascript>
  function go(){
   var javaScriptVariable='123'
    $.ajax({ 
      url:'${g.createLink( controller:'my', action:'go')}',
      data:{ 
        param1: "${params.params1}",
        param2: javascriptVariable 
      }
    });
  }
 </g:javascript>

data:{} также может быть data: $('form').serialize(); , где функция serialize захватывает все элементы формы и сериализует их для вас как парамы, которые будут переданы обратно.