Javascript Grails—将字符串值从控制器传递到视图,并在JS中为逻辑使用值
使用Grails,在从控制器向视图传递模型之后Javascript Grails—将字符串值从控制器传递到视图,并在JS中为逻辑使用值,javascript,grails,Javascript,Grails,使用Grails,在从控制器向视图传递模型之后 <g:render template="editor-template" model="[id: asset.key, json: someJson as grails.converters.JSON]"></g:render> 日志 然而,下一行尝试对此执行一些操作,无论是将值分配给新变量,还是对其进行方法调用,例如 var id = ${raw(id as String)} 结果是 ace:251 Uncaught
<g:render template="editor-template" model="[id: asset.key, json: someJson as grails.converters.JSON]"></g:render>
日志
然而,下一行尝试对此执行一些操作,无论是将值分配给新变量,还是对其进行方法调用,例如
var id = ${raw(id as String)}
结果是
ace:251 Uncaught ReferenceError: episode1 is not defined
at ace:251
我想要的是,能够使用字符串文字“eposode1”调用另一个方法,该方法对具有此ID的元素进行查找。如果我尝试直接调用该方法,则得到与尝试将新变量设置为其值时相同的结果
我试过:
- 以
字符串形式从控制器传递
- 在js中只使用
${id}
- 在js中使用
.toString()
- 在js中使用
.val()
- 在js中使用
.valueOf()
任何其他想法,谢谢!谢谢我不确定我是否理解正确,但我认为您可以将id变量放入第页的隐藏字段中:
<input id="id-field" value="${id}"/>
然后在js中检索它的值。应将其视为文字字符串。我不确定是否理解正确,但我认为您可以将id变量放入第页的隐藏字段中:
<input id="id-field" value="${id}"/>
然后在js中检索它的值。应将其视为文本字符串。您已经通过了以下带有数据的模型
model="[id: asset.key, json: someJson as grails.converters.JSON]
您可以在javascript中访问这些数据,如下所示:,
声明全局变量以访问页面中所有位置的这些数据,如下所示:
var id = "${id}"; // your string value.
var json = ${json}; // this is your json object which you need to parse
现在,您可以在JS中访问这些变量的值。您已经用数据传递了以下模型
model="[id: asset.key, json: someJson as grails.converters.JSON]
您可以在javascript中访问这些数据,如下所示:,
声明全局变量以访问页面中所有位置的这些数据,如下所示:
var id = "${id}"; // your string value.
var json = ${json}; // this is your json object which you need to parse
现在,您可以在JS中访问这些变量的值。我认为您没有100%理解,但它确实给了我一个想法。GSP:JS:var myId=document.getElementById('id-field-${id}')).getAttribute('data-id');console.log(“myId:+myId”);setupEditorForId(myId);我认为嵌套模板等出现了一些奇怪的情况,所以这个问题是更大的grails设置的一部分。以上是我想要做的。看起来很复杂,不是最好的做法-我将进行更多调查,看看我是否能真正了解问题所在。我不认为你100%理解,但它确实给了我一个想法。GSP:JS:var myId=document.getElementById('id-field-${id}')).getAttribute('data-id');console.log(“myId:+myId”);setupEditorForId(myId);我认为嵌套模板等出现了一些奇怪的情况,所以这个问题是更大的grails设置的一部分。以上是我想要做的。看起来很复杂,不是最好的做法-我将进行更多调查,看看我是否能真正看到问题所在。