如何在JavaScript中访问Grails变量?
我的Grails应用程序的如何在JavaScript中访问Grails变量?,javascript,grails,Javascript,Grails,我的Grails应用程序的BootStrap.groovy中有一个变量: class BootStrap { def init = { servletContext -> def testGrails = "11" 如果这个测试值是11,我想显示一个JavaScriptalert() 我的JavaScript: <SCRIPT LANGUAGE="JavaScript"> if(testGrail
BootStrap.groovy中有一个变量:
class BootStrap {
def init = { servletContext ->
def testGrails = "11"
如果这个测试值是11,我想显示一个JavaScriptalert()
我的JavaScript:
<SCRIPT LANGUAGE="JavaScript">
if(testGrails==11) // WHAT TO WRITE WITH IN THE BRACKETS ...?
{
alert("yes");
}
if(testGrails==11)//在括号中写什么。。。?
{
警惕(“是”);
}
如何访问Javascript中的Grails类来执行上述操作
谢谢。首先,您必须使此变量可以从其他地方访问。目前它被限定在init
范围内。例如,您可以将其放入全局配置(请参见config.groovy
)。或设置为服务。或者在某个地方创建一个公共静态
变量
服务的示例:
class VariableHOlderService {
def testGrails
}
及
第二,您需要将其放入请求中。有两种方法-使用过滤器或控制器/操作。当您想要使用来自不同GSP的相同变量时,第一个选项很有用
从控制器来看,它将是:
VariableHolderService variableHolderService
def myAction = {
render model: [testGrails:variableHolderService.testGrails]
}
并在GSP中使用它作为
<g:javascript>
if(${testGrails}==11)
{
alert("yes");
}
</g:javascript>
if(${testGrails}==11)
{
警惕(“是”);
}
您应该在Config.groovy中定义变量,而不是在Bootstrap中。然后您可以在gsp文件中访问它,如下所示:
<SCRIPT LANGUAGE="JavaScript">
if(${grailsApplication.config.testGrails}==11)
{
alert("yes");
}
<g:meta name="app.name"/>
if(${grailsApplication.config.testGrails}==11)
{
警惕(“是”);
}
您确定在引导程序.groovy中需要它吗?这是你计算出来的还是可以改变的
如果您的答案是否定的,我发现meta
标记对于获取GSP文件中的信息非常有用
例如,如果您想要您的应用程序名,可以这样获得:
<SCRIPT LANGUAGE="JavaScript">
if(${grailsApplication.config.testGrails}==11)
{
alert("yes");
}
<g:meta name="app.name"/>
Grails关于这方面的文档有点糟糕,但确实如此。hi,谢谢我做了与您提到的相同的事情,除了gsp alert中的四个之外,其余都是:未定义。。。你有什么想法吗。。。我更喜欢在GSP(Sitemesh布局)中包含JS变量:var someJSvar=${anyAvailableExpression};如何在外部javascript文件中使用${grailsApplication.config.testGrails}?我设想您可以有一个GSP文件,其中包含您需要的所有变量,然后将其与jQuery一起包含在需要访问变量的所有其他文件中。