0

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

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

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

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

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

4

1 回答 1

1

Even thinking about doing so neither makes sense nor applicable.

这种说法的原因是,当 gsp 页面呈现为 html 页面时,它会将 grails 标记替换为适当的 html 标记或值。同样,它将${}or替换为<%%>html 或 javascript 或前端的任何内容。

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

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

在上面声明 abtestType,如下所示:

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

现在您可以访问abtestTypejavascript 中的全局变量。

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

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

Javascript 中是否有与 PHP 中的 __FILE__ 变量类似的地方?

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

通过 SRC 属性将 vars 传递给 JavaScript

希望能帮助到你!

于 2015-12-07T08:07:40.040 回答