Javascript grailsgsp访问脚本中的变量

Javascript grailsgsp访问脚本中的变量,javascript,ajax,grails,gsp,Javascript,Ajax,Grails,Gsp,我一直在寻找这个问题,但似乎找不到正确的解决方案。我要把这件事说得再简单一点,看看我哪里做错了 我正在为一个项目使用Grails,我真的很喜欢它。我认为在普惠制中很难做到 有人能告诉我: 控制器: def index() { def message = "This is a test" [message: message] } 视野之内 <!DOCTYPE html> <html lang="en"> <head> <script

我一直在寻找这个问题,但似乎找不到正确的解决方案。我要把这件事说得再简单一点,看看我哪里做错了

我正在为一个项目使用Grails,我真的很喜欢它。我认为在普惠制中很难做到

有人能告诉我:

控制器:

def index()
{
   def message = "This is a test"
   [message: message]
}
视野之内

<!DOCTYPE html>
<html lang="en">
<head>
    <script type="text/javascript">
        $(document).ready(function() {

             HOW DO YOU ACCESS THAT VARIABLE IN HERE 

        });

<body></body>
</html>

$(文档).ready(函数(){
如何在这里访问该变量
});
我正在尝试提供一些第三方javascript库,我在尝试解决这个问题时遇到了一个问题。是的,我可以手动使用ajax或使用第三方库调用ajax。然而,我认为有一个grails的方法来实现这一点,这样我就不必做那么多繁重的工作。我的意思是,你是专业人士吗?在脚本{}之上访问它,并使所有东西全球化?只是想找出正确的方法


我使用的示例库是
JQwidgets
库,它确实有ajax调用,但我更愿意通过Grails中的命名操作将数组等直接传递给它。

好吧,因为这让我找到了答案

关键是将编解码器stmt放在gsp的顶部

我忍不住想我是在一起解决这个问题。每当我用“谷歌”编码时,我发现我并没有遵循“专业人士”的做法。 目前看来,这似乎解决了这个问题

控制器

def index() { 

    def configtree = ConfigTree.list()
    [message: configtree as JSON]
}


<%@page expressionCodec="none" %>
<!DOCTYPE html>
def index(){
def configtree=configtree.list()
[消息:配置树为JSON]
}


$(文档).ready(函数(){
var data=${raw(message)};
//准备数据
变量源=
{
数据类型:“json”,
数据字段:[
{name:'id'},
{name:'parentid'},
{name:'text'},
{name:'图标'},
{name:'扩展'},
{name:'选定'},
{name:'iconsize'},
{name:'已禁用'},
{name:'值'}
],
id:'id',
localdata:data
};
var dataAdapter=new$.jqx.dataAdapter(源);
dataAdapter.dataBind();
var records=dataAdapter.getRecordsHierarchy('id','parentid','items',[{name:'text',map:'label'}]);

你可以这样写:

<!DOCTYPE html>
<html lang="en">
<head>
    <script type="text/javascript">
        $(document).ready(function() {
            var message = "${message}";
            console.log("I'm from GSP", message);
            $("input[selector]").val(message);    // Just a dumb example
        });
    </script>
</head>
<body>
</body>
</html>

$(文档).ready(函数(){
var message=“${message}”;
log(“我来自GSP”,消息);
$(“输入[选择器]”).val(消息);//只是一个愚蠢的例子
});

$(document).ready(函数(){var something=“${message}”;}
这假设正在呈现的GSP是来自
index
controller方法的视图。这样,当编译和呈现页面时,
视图中的
模型可以供GSP使用。请始终记住,grails部分在服务器上执行,javascript在浏览器上执行。这就是为什么您需要无法从视图中访问grails变量(也不能从grails代码中访问javascript变量)。可以使用@joshua moore的注释。
<!DOCTYPE html>
<html lang="en">
<head>
    <script type="text/javascript">
        $(document).ready(function() {
            var message = "${message}";
            console.log("I'm from GSP", message);
            $("input[selector]").val(message);    // Just a dumb example
        });
    </script>
</head>
<body>
</body>
</html>