Grails/AJAX:使用g:submitToRemote更新页面中的任意区域
在GSP(Groovy服务器页面)中,我使用Grails/AJAX:使用g:submitToRemote更新页面中的任意区域,ajax,grails,gsp,Ajax,Grails,Gsp,在GSP(Groovy服务器页面)中,我使用在服务器端调用后更新 根据标签和web上的其他来源,目标可以任意放置在页面上。然而,在我的测试中,我发现需要围绕标记 如果没有,则将使用一些“随机”内容(即表单中围绕标记的部分)更新 考虑以下普惠制代码: <html> <head> <g:javascript library="prototype" /> </head> <body> <div id="updateMe_NOT
在服务器端调用后更新
根据标签和web上的其他来源,目标
可以任意放置在页面上。然而,在我的测试中,我发现
需要围绕
标记
如果没有,则
将使用一些“随机”内容(即表单中围绕
标记的部分)更新
考虑以下普惠制代码:
<html>
<head>
<g:javascript library="prototype" />
</head>
<body>
<div id="updateMe_NOT_WORKING">${message}</div>
<g:form>
<div id="updateMe_WORKING">
<g:submitToRemote value="Click Me"
action="someAction" update="updateMe_NOT_WORKING" />
</div>
</g:form>
</body>
</html>
${message}
这在Grails1.3.4上。我错过了什么谢谢我认为问题在于您没有为您的操作指定控制器。尝试将controller=“…”添加到g:submitToRemote标记中。或者至少在g:form中指定它
我确信
不需要包装。根据我的测试,g:submittomote
的动作
属性不能指向当前控制器的当前动作(因为这将把当前视图插入/复制到当前视图中)
如果您在g:submitToRemote
中指定了一个替代操作,则该操作有效-即
<g:submitToRemote value="Click Me"
action="ajaxAction" update="updateMe" />
然后需要有一个相应的普惠制——在这种情况下,应该说明
$message
或者,该操作可以使用render
方法-如下所示
def ajaxAction = { render 'foo' }
我会把这个问题留待一段时间,以防有其他的回应,如果没有,我会接受这个答案作为解决方案
谢谢谢谢你的回答[+]这使我更深入地研究了这个问题
controller
属性实际上没有什么区别,但它是action
属性(它必须引用一个不是当前操作的操作,加上涉及的某些附加条件)。是的,对于不熟悉Grails中MVC的开发人员来说,这是一个常见的问题。我有很长一段时间被它困扰着。
def ajaxAction = { render 'foo' }