javascript - 如何将 Javascript 代码从 Controller 发送到 GSP View ?

标签 javascript grails rendering

我想从 Controller 发送一些 JS 脚本到 GSP View 。 我做了以下尝试。

Controller (Purchase.groovy):

 def myaction={
     flash.script= 'jQuery("div#header").show(1000);'
     redirect(action:'edit')
}

purchase/myaction.gsp文件中, 我试试下面的代码

<g:if test="${flash.script !=null}">
    <g:javascript>
    $(function() {

            ${flash.script}
    })
   </g:javascript>
</g:if>
<g:else>
 <g:javascript>
    $(function() {

          alert('Welcome')
    })
   </g:javascript>
</g:else>

我也尝试:jQuery.getScript('${flash.script}') 而不是 '${flash.script}' 但是,GSP 页面始终呈现第二个脚本(else 语句)

最佳答案

首先,一定要在dom加载完成后调用该函数;你可以像这样使用 jquery

  $( document ).ready(function() {
     call_function();
  });

并且您可以将 js 代码形式的 Controller 作为 map 发送,而不是通过 flash 并重定向到另一个操作。见下文:

 def myaction={
    redirect(action:'edit', customJs: 'jQuery("div#header").show(1000);')
 }

 def edit={
   render view: 'someView', model:[customJs: customJs]
}

在 View 中:

 <g:javascript>
$(function() {

        <%= customJs %>
})

关于javascript - 如何将 Javascript 代码从 Controller 发送到 GSP View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16519359/

相关文章:

javascript - 为什么通过Web套接字客户端上传时文件大小总是为零?

javascript - 在 head 标签中动态添加一个 <link rel ="canonical"

grails - 命令对象和 hasman

java - Java 中的 3D 渲染 - 我应该从哪里开始?

Node .js : rendering error with vash

internet-explorer - IE 条件注释和 Chrome/Firefox

javascript - 将 JS 转换为 Mithril(使用 Chartkick)

javascript - CSS 内边框?

grails - Grails 2.2.0,Spring Security-注销功能不起作用

unit-testing - 测试执行前如何在Grails上修改域映射