【问题标题】:Using gsp layout declared variable in javaScript file that is being loaded in the same page在同一页面中加载的 javaScript 文件中使用 gsp 布局声明的变量
【发布时间】:2015-12-07 07:03:15
【问题描述】:

我最近开始学习 grails,我正在尝试使用在页面布局中声明的 gsp 变量:

<g:set var="abtestType" value="newSearchBar" />

在同一页面上加载的 js 文件中。我尝试过的事情:

 alert(${abtestType});  
 alert(<%=abtestType%>);
 alert("abtestType:"+abtestType);

但未定义其显示为变量的错误。可能我试图以错误的方式获取它,需要有关此方面的帮助。

【问题讨论】:

    标签: javascript grails grails-2.0 gsp grails-3.0.9


    【解决方案1】:

    Even thinking about doing so neither makes sense nor applicable.

    这种说法的原因是当一个 gsp 页面被渲染为一个 html 页面时,它会用适当的 html 标记或值替换 grails 标记。同样,它将${}&lt;%%&gt; 替换为 html 或 javascript 或前端的任何内容。

    因此,如果您在 gsp 本身中有那些 javascript 代码行,那么您尝试过的代码可能会运行良好,但是由于您调用了外部化的 js 文件,它实际上对 gsp 或 jsp 或任何其他语言的前端一无所知-结束支持。

    如果在 javascript 中使用 global variable,这是一种方法。例如

    像下面这样在上面声明abtestType:

    <script>
    var abtestType = "${abtestType}"
    </script>
    

    现在您可以在 javascript 中访问全局变量 abtestType

    在你的 javascript 中使用它,但现在请记住,如果使用它的代码被调用,你需要拥有这个变量,否则你会得到同样的错误,即variable is not defined

    我在这篇文章中发现了另一种方法,但实际上是一种操纵。

    Is there any analogue in Javascript to the __FILE__ variable in PHP?

    另外,另一个很好的链接是

    Pass vars to JavaScript via the SRC attribute

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2013-09-29
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      相关资源
      最近更新 更多