ajax - AJAX 调用后如何在 Grails 中显示 flash.message

标签 ajax grails grails-2.0

我想在 AJAX 调用完成后显示一些 flash 消息。我是这样做的..

Controller Action --

def subscribe()
{
    def subscribe = new Subscriber()
    subscribe.email = params.subscribe
    if (subscribe.save())
    {
        flash.message = "Thanks for your subscribtion"
    }

}

查看部分 --

Subscribe :
    <g:formRemote onSuccess="document.getElementById('subscribeField').value='';" url="[controller: 'TekEvent', action: 'subscribe']" update="confirm" name="updateForm">
       <g:textField name="subscribe" placeholder="Enter your Email" id="subscribeField" />
       <g:submitButton name="Submit" />
    </g:formRemote >
    <div id="confirm">
       <g:if test="${flash.message}">
           <div class="message" style="display: block">${flash.message}</div>
       </g:if>
    </div>

我的 AJAX 工作正常,但它没有向我显示 flash.message。刷新页面后显示消息。如何解决?

最佳答案

当您使用 ajax 时,您的页面内容不会被重新解析,因此您的代码:

<g:if test="${flash.message}">
  <div class="message" style="display: block">${flash.message}</div>
</g:if>

不会再次运行。

所以我同意@James 的评论,flash 对你来说不是更好的选择。

如果您需要更新 View ,请使用 JSON。 Grails 已经有一个 converter可以用于此:

if (subscribe.save()) {
  render ([message: "Thanks for your subscribtion"] as JSON)
}

你的观点:

<g:formRemote onSuccess="update(data)" url="[controller: 'TekEvent', action: 'subscribe']"  name="updateForm">
  <g:textField name="subscribe" placeholder="Enter your Email" id="subscribeField" />
  <g:submitButton name="Submit" />
</g:formRemote >

<script type='text/javascript'>
  function update(data) {
    $('#subscribeField').val('');
    $('#confirm').html(data.message);
  }
</script>

关于ajax - AJAX 调用后如何在 Grails 中显示 flash.message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17920323/

相关文章:

grails - 寻找Grails 2.0的好书

javascript - 在 Ember.js 中,为什么 'afterRender' 不会在重绘时触发?

javascript - 基于简单 iframe 的 AJAX 脚本 : first call yields 'null' element, 后续调用工作完美。我在这里不明白什么?

java - Spring Boot 和 Ajax 响应

javascript - 选择具有多个参数的行(ajax 和 PHP)

grails - grails以目录形式显示图像

grails - Grails-如何按名称对选项进行排序?

grails - <g:select>中的Grails <g:if>

grails - SpringSecurity/Grails 如何在运行时动态更改 LoginUrlAuthenticationEntryPoint 中的 loginFormUrl?

gwt - 如何使GWT插件与Grails一起运行?