在同一页面中加载的 javaScript 文件中使用 gsp 布局声明变量
Using gsp layout declared variable in javaScript file that is being loaded in the same page
我最近开始学习 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 页面时,它会用适当的 html 标签或值替换 grails 标签。同样,它将 ${}
或 <%%>
替换为 html 或 javascript 或前端发生的任何内容。
因此,如果您在 gsp 本身中有那些 javascript 代码行,那么您尝试过的代码可能工作正常,但正如您调用的外部化 js 文件,它实际上对 gsp 或jsp 或任何其他语言的前端支持。
一种方法是在 javascript 中使用 global variable
。例如
在上面声明 abtestType,如下所示:
<script>
var abtestType = "${abtestType}"
</script>
现在您可以访问 javascript 中的全局变量 abtestType
。
在您的 javascript 中使用它,但请记住,如果调用使用它的代码,现在您需要拥有此变量,否则您会得到非常相同的错误,即 variable is not defined
我在这个 post 中发现了另一种方法,但实际上是一种操纵。
Is there any analogue in Javascript to the __FILE__ variable in PHP?
此外,另一个不错的链接是
Pass vars to JavaScript via the SRC attribute
希望对您有所帮助!
我最近开始学习 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 页面时,它会用适当的 html 标签或值替换 grails 标签。同样,它将 ${}
或 <%%>
替换为 html 或 javascript 或前端发生的任何内容。
因此,如果您在 gsp 本身中有那些 javascript 代码行,那么您尝试过的代码可能工作正常,但正如您调用的外部化 js 文件,它实际上对 gsp 或jsp 或任何其他语言的前端支持。
一种方法是在 javascript 中使用 global variable
。例如
在上面声明 abtestType,如下所示:
<script>
var abtestType = "${abtestType}"
</script>
现在您可以访问 javascript 中的全局变量 abtestType
。
在您的 javascript 中使用它,但请记住,如果调用使用它的代码,现在您需要拥有此变量,否则您会得到非常相同的错误,即 variable is not defined
我在这个 post 中发现了另一种方法,但实际上是一种操纵。
Is there any analogue in Javascript to the __FILE__ variable in PHP?
此外,另一个不错的链接是
Pass vars to JavaScript via the SRC attribute
希望对您有所帮助!