由于Grails 2.4.X中的g:remoteFunction已被弃用,我应该使用什么呢?

时间:2014-08-11 14:27:23

标签: grails

由于g:remoteFunction已被弃用,我应该使用什么呢?请举个例子。

2 个答案:

答案 0 :(得分:4)

你应该使用自己的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()"/>

答案 1 :(得分:0)

只是详细说明Injecteers回答实际数据:{}是什么是向它发布信息所以可能与params发生冲突:[..]}:

<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函数会抓取所有表单元素并将其序列化为params以便传回。