我最近开始学习 grails,我正在尝试使用在页面布局中声明的 gsp 变量:
<g:set var="abtestType" value="newSearchBar" />
在同一页面上加载的 js 文件中。我尝试过的事情:
alert(${abtestType});
alert(<%=abtestType%>);
alert("abtestType:"+abtestType);
但未定义其显示为变量的错误。可能我试图以错误的方式获取它,需要有关此方面的帮助。
我最近开始学习 grails,我正在尝试使用在页面布局中声明的 gsp 变量:
<g:set var="abtestType" value="newSearchBar" />
在同一页面上加载的 js 文件中。我尝试过的事情:
alert(${abtestType});
alert(<%=abtestType%>);
alert("abtestType:"+abtestType);
但未定义其显示为变量的错误。可能我试图以错误的方式获取它,需要有关此方面的帮助。
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>
现在您可以访问abtestType
javascript 中的全局变量。
在你的 javascript 中使用它,但现在请记住,如果使用它的代码被调用,你需要有这个变量,否则你会得到同样的错误,即variable is not defined
我在这篇文章中发现了另一种方法,但实际上是一种操纵。
Javascript 中是否有与 PHP 中的 __FILE__ 变量类似的地方?
此外,另一个很好的链接是
通过 SRC 属性将 vars 传递给 JavaScript
希望能帮助到你!