通过Chrome dev javascript控制台查看控制器发送的变量

时间:2014-08-07 15:30:30

标签: javascript grails

我的GSP或模板上的代码会在Chrome开发工具javascript控制台中显示控制器发送的变量:

<script>
    console.log("${recordToEdit.redIssues}"); // I see a list with elements in the console
</script>

我知道它有效,因为我看到了这个:

[No address provided., No telephone number provided., No accounts found.] 

但有没有办法在控制台上以交互方式查看?我尝试了以下命令但无法使其工作:

console.log("${recordToEdit.redIssues}")
${recordToEdit.redIssues} VM1892:2
undefined
console.log(${recordToEdit.redIssues})
SyntaxError: Unexpected token {
console.log${recordToEdit.redIssues}
SyntaxError: Unexpected token {

1 个答案:

答案 0 :(得分:0)

没有办法以你现在尝试做事的方式互动地看待它。它在使用<script></script>标记嵌入GSP或模板时有效,因为"${recordToEdit.redIssues}"表达式是GString,它在服务器端进行评估。呈现GSP页面时,recordToEdit.redIssues将转换为包含其值的字符串。

JavaScript控制台不了解您运行的服务器端代码,只知道它收到的静态HTML内容。话虽这么说,你仍然可以完成你正在寻找的功能(在某种程度上)。

您可以通过将值设置为您正在使用的GSP或模板上的全局JavaScript变量来访问相同的服务器端变量:

<script>
    window.redIssues = "${recordToEdit.redIssues}";
</script>

然后,在Chrome DevTools控制台中,只需键入redIssues并按Enter即可访问该值。请注意,该值不是动态的,只会显示呈现页面时原始recordToEdit.redIssues值。