一次性在Grails中发布所有传入参数
POSTing all incoming params in Grails at once
我在Grails中有以下JavaScript函数:
function requestPost() {
var projectNameFilter = $("input[name='project-name-filter']").val();
var addressFilter = $("input[name='address-filter']").val();
$.post(
'${createLink(controller: "listing", action: "transactions")}',
{
projectNameFilter: eval(projectNameFilter),
addressFilter: eval(addressFilter),
listingType: "${params?.listingType}",
propertyType: "${params?.propertyType}",
},
function (data, status) {
$('#dynamic-table').html(data);
}
);
}
请注意以下两个参数:
- listingType:"$ {params ? .listingType} "
- propertyType:"$ {params ? .propertyType} "
我在这个方法中有很多这样的参数,它们都应该被传递到控制器中。
现在我的问题是:尽管重复做这样的整个过程,我怎么能一次传递所有这些参数
由于您的目标是使用javascript传递所有参数,因此呈现的html需要显式地包含所有参数。因此,不可能有一个内置的解决方案(如果你不想使用会话,不愿意使用弃用的remoteFunction
标签)。一种解决方法是迭代所有参数并插入它们。注意,这可能是一个安全问题:
$.post('${createLink(controller: "listing", action: "transactions")}',
{
<g:each in="${params}" var="paramKeyValue">
'${paramKeyValue.key}': '${paramKeyValue.value}',
</g:each>
},...)
我建议这样做:
<g:each in="${['listType', 'propertyType']}" var="paramKey">
'${paramKey}': '${params."${paramKey}"}',
</g:each>
你也可以这样做:
${params.subMap(['listType', 'propertyType']) as JSON}
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 使用Express捕获参数
- 参数变量出现ngTable指令问题
- AngularJS:我可以跳过函数参数回调吗
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 要求未定义JS回调参数
- 当我在Javascript中给出的参数超过函数所需的参数时会发生什么
- 制作函数中所需的参数
- 当表单控件选项具有多个参数时,如何在组合框中填充所选项目
- 有没有一种方法可以获得javascript函数所采用的参数的arity
- 如何将下拉列表中所选项的值作为参数传递给控制器(Google 图表)
- 调用所有数组元素的函数,而不将项目作为参数传递
- 使用所选参数调用函数,而不使用if.else语句
- 使用json-decorator-how的django视图所需的参数
- 处理所需和可选功能参数的推荐方法
- 如何捕获函数中所需的参数数(套用函数部分应用程序)
- Javascript对象.innerHtml没有替换所提供的整个字符串参数
- 在javascript中,我如何知道函数所期望的参数类型
- 如何以最佳方式解析字符串并获取所需的参数