Grails控制器值(映射)到单独的javascript文件

Grails控制器值(映射)到单独的javascript文件,javascript,variables,grails,gsp,Javascript,Variables,Grails,Gsp,我查看了很多论坛,但还没有得到答案。 所以-我有很多JS代码,所以我将其保存在单独的.JS文件中(不在.gsp视图中)。 但是现在我在访问控制器映射的值时遇到了问题——我需要在我的JS页面上使用它们,这样我就可以生成我的游戏场(基于控制器提供的值)。 我有 然后我在视图中访问了它们,比如-${gameInfo.playerName}等等。 但如何让它们进入JS文件呢?例如,玩家选择了一个对象的颜色(即JS生成的颜色)。 例如,ball.fillStyle(${gameInfo.ballColor

我查看了很多论坛,但还没有得到答案。 所以-我有很多JS代码,所以我将其保存在单独的.JS文件中(不在.gsp视图中)。 但是现在我在访问控制器映射的值时遇到了问题——我需要在我的JS页面上使用它们,这样我就可以生成我的游戏场(基于控制器提供的值)。 我有

然后我在视图中访问了它们,比如-
${gameInfo.playerName}
等等。 但如何让它们进入JS文件呢?例如,玩家选择了一个对象的颜色(即JS生成的颜色)。 例如,
ball.fillStyle(${gameInfo.ballColor})
当然,这是行不通的!
提前感谢!:)

您必须使用内联JavaScript分配值

<script type="text/javascript">
 var gameInfo = ${gameInfo as JSON};
</script>

var gameInfo=${gameInfo as JSON};

我是否要将其放入.gsp文件中?以及如何访问它的值?比如-游戏信息,玩家名称?!是的,它将在你们的普惠制中。像平常一样访问它。当您执行“作为JSON”时,它是一个JavaScript对象。如果您不理解JavaScript对象,您需要进行一些阅读。这在Grails v2.3.11中对我不起作用-即使在我尝试
${raw(foo as JSON)}
时,字符串值周围的引号也被转义。我最终改用了这个:
var gameInfo=${gameInfo.encodeAsJson()}。编辑:我的变量是一个
Map
<script type="text/javascript">
 var gameInfo = ${gameInfo as JSON};
</script>