在grails中,我使用以下机制来实现所谓的条件服务器端触发对话框:提交表单时,数据必须首先由 Controller 处理。根据结果,必须是:a)在“旧”屏幕之前的模式是/否确认,或者b)重定向到替换“旧”屏幕的新 Controller / View (无需确认)。
所以这是我目前的方法:
<g:formRemote name="requestForm" url="[controller:'test', action:'testRequest']", update:"dummyRegion">
和一个被CSS
<span id="dummyRegion">
所以(最后;-),我的问题是:如何获得 Controller 重定向以使相应的 View “脱离”我的AJAX dummyRegion,再次替换整个屏幕?
或者:对于我的想法,您是否有更好的方法?但是请注意,我无法在客户端检查是否需要确认,因此需要进行服务器 call !另外,我想避免只刷新整个页面以弹出确认对话框(如果没有AJAX,这也是可能的)。
感谢您的提示!
最佳答案
我知道,这不是一个“集成”解决方案,但您是否考虑过使用所选的某些JS库“手动”执行此操作(我个人选择的是jQuery,但其他任何已建立的库都可以做到这一点)?这样,您将不依赖于任何更新“区域”,但是可以在AJAX请求的响应处理程序中做任何您想做的事情(例如更新任何DOM元素)。
只是一个想法。我的个人经验是,Grails中的“内置” AJAX / JS内容通常缺乏灵活性,而我总是以纯jQuery来完成所有工作。
关于ajax - 急于实现grails服务器端触发的对话框,或如何在AJAX调用后突破更新区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2998986/