【问题标题】:Grails - How to execute a javascript method after a template is rendered?Grails - 渲染模板后如何执行javascript方法?
【发布时间】:2014-02-27 10:35:37
【问题描述】:

我正在尝试执行 javascript 代码来初始化我的 gsp 模板中的某些组件。我需要在加载模板后执行脚本代码。模板是从控制器加载的。知道如何实现吗?

在控制器中呈现模板的代码:

render(template: 'myTemplate', model:[user:User])

我正在使用 formRemote 调用控制器

<g:formRemote url="[action:'showMeTemplate', controller: 'User']" name= "formName" update="myTemplateDiv">
</g:formRemote>

【问题讨论】:

  • 您尝试过formRemote 上的onSuccessonComplete 事件吗? grails.org/doc/latest/ref/Tags/formRemote.html
  • 已完成。我的不好,在文档中没有注意到这一点。我之前和之后都在尝试。有人可以将此标记为答案吗?
  • 我会把它转换成答案

标签: grails gsp


【解决方案1】:

formRemote 标签上尝试onSuccessonComplete 事件。

http://grails.org/doc/latest/ref/Tags/formRemote.html

【讨论】:

    【解决方案2】:

    你可以使用“之前”属性

    <g:formRemote before="setTimeout(function(){return true;},500);" url="[action:'showMeTemplate', controller: 'User']" name= "formName" update="myTemplateDiv" >
    </g:formRemote>
    

    没有测试,但也许你有一个想法

    【讨论】:

      【解决方案3】:

      从 Grails 文档 (http://grails.org/doc/2.2.1/ref/Tags/formRemote.html) 中,如果远程表单调用成功(即,如果可以呈现远程表单),您可以使用 onLoaded 参数调用一些 JavaScript:

      <g:formRemote url="[action:'showMeTemplate', controller: 'User']" name= "formName" update="myTemplateDiv" onLoaded ="myJSfunction()">
      </g:formRemote>
      

      【讨论】:

        猜你喜欢
        • 2017-08-29
        • 2010-11-30
        • 2020-11-29
        • 2012-03-27
        • 2015-05-23
        • 2021-12-13
        • 2011-03-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多