在将模型传递给我的控制器视图后使用Grails
<g:render template="editor-template" model="[id: asset.key, json: someJson as grails.converters.JSON]"></g:render>
我可以在JS中访问它,因为我可以记录它:
console.log("ID for editorSetup: ${id}");
日志
ID for editorSetup: episode1
然而,下一行试图对此进行一些操作,无论是将值赋值给新变量,还是对其进行方法调用,例如
var id = ${raw(id as String)}
导致
ace:251 Uncaught ReferenceError: episode1 is not defined
at ace:251
我想要的是能够使用String literal&#34; episode1&#34;调用另一个方法来查找具有此ID的元素。如果我尝试直接调用该方法,我会得到与尝试将新变量设置为其值时相同的结果。
我试过了:
as String
${id}
.toString()
.val()
.valueOf()
任何其他想法赞赏!感谢
答案 0 :(得分:0)
我不确定我是否理解正确,但我认为您可以将 id 变量放入页面上的隐藏字段中:
<input id="id-field" value="${id}"/>
然后在js中检索其值。它应该被视为文字字符串。
答案 1 :(得分:0)
您已通过以下模型传递数据
Array (
[Pakistan] => Array (
[impression] => 110
[request] => 8
[click] => 5
)
[India] => Array (
[impression] => 20
[request] => 50
[click] => 5
)
)
您只需在javascript中访问这些数据,如下所示: 声明全局变量以在页面中的任何位置访问这些数据,如下所示,
model="[id: asset.key, json: someJson as grails.converters.JSON]
现在,您可以在JS中访问这些变量的值。