Grails当前remoteFunction只能在成功时更新一个div(并且在出错时更新一个div)。有时我想使用单个Ajax调用更新多个div(成功时)。除了将remoteFunction链接在一起(即第一个调用成功的Javascript函数,调用第二个远程函数)时,如何做到这一点。 ...有没有办法在没有这种链接的情况下通过ajax更新页面的多个部分?
谢谢
答案 0 :(得分:4)
你可以调用两个以冒号分隔的远程函数。
<g:select id='releaseVersion' name="releaseVersion" noSelection="['0':'--Select--']" from='${new Alarm().constraints.releaseVersion.inList}' onchange="${remoteFunction(controller:'alarm', action:'updateComponentByRelease',params:'\'selectedValue=\' + this.value', update:'component')};
${remoteFunction(controller:'alarm',action:'updateDiscriminatorByComponent', params:'\'selectedValue=\' + this.value',update:'subsystem')};"></g:select>
答案 1 :(得分:3)
你可以通过在javascript中获取onSuccess函数来设置生成的div的html。以下是如何执行此操作的一个很好的示例 - http://www.webdeveloperjuice.com/2010/04/01/filling-multiples-divs-by-single-ajax-call-using-jquery/
无法自动完成。
答案 2 :(得分:0)
您可以在AJAX请求完成时设置事件。例如:
<g:remoteLink action="show"
id="1"
update="success"
onLoading="showProgress()"
onComplete="updateContent()">Show Book 1</g:remoteLink>
完成http://grails.org/doc/2.0.x/guide/single.html#ajax
后会触发function updateContent
看起来没有办法自动更新两个div。唯一可行的方法是使用相同的内容更新两者。