gpt4 book ai didi

Grails RemoteFunction参数语法

转载 作者:行者123 更新时间:2023-12-04 05:01:23 25 4
gpt4 key购买 nike

我试图在grails中将几个参数传递给remoteFunction,但是我正在努力正确格式化它

我想传递页面上的一部分数据的值加上刚刚跳出的文本框的值,因此在我的onblur中,我有类似以下内容:

onblur=${remoteFunction(action:'dave',  update:'pack'+it.id,
params:[denom:document.getElementById(denomValue+${it.id}).value ,
amount:this.value ])}

这不会编译-使用不同数量的单引号和转义字符也无法提供任何排列。

我认为真正让我感到困扰的是,我不真正理解我在这里试图创造的东西。就像使用JSP代码创建将在以后执行的JavaScript一样吗?什么时候对这个表达式求值-是在编译页面时-还是在调用oblur时是a = it?

任何帮助,不胜感激。

最佳答案

看来您已经将服务器端代码与客户端代码混在一起了。

当页面被“构建”以发送到客户端浏览器时,将评估Grails代码。

页面交付到浏览器后,将对Javascript代码进行评估。

考虑到这一点,让我们看一下您的onblur分配:

onblur=${remoteFunction(
action:'dave',
update:'pack'+it.id,
params: [denom: document.getElementById(denomValue+${it.id}).value,
amount: this.value ])}

给定$ {remoteFunction ...}调用是Grails标记,它将在服务器上进行评估,生成固定的字符串,然后发送给客户端。调用中的所有内容都必须是有效的Groovy代码。

看一下params映射,您已经在Groovy代码内的denom值中添加了一些Javascript:
document.getElementById(denomValue

然后尝试从Groovy添加值
+${it.id}

然后再来一些Javascript
).value

Groovy编译器将尝试将Javascript评估为Groovy代码并失败。

如果您需要使用Javascript访问客户端参数,则需要自己处理Javascript(而不使用remoteFunction标签),例如,处理远程调用:
var path=${createLink(action:'dave',
params: [amount:this.value])}
+ "&denom="
+ document.getElementById(denomValue+${it.id}).value

您还需要使用Javascript自行处理远程响应,以更新“pack”元素。您始终可以查看remoteFunction调用生成的内容,将其复制到页面中并进行编辑以执行所需的操作。

高温超导

关于Grails RemoteFunction参数语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com