1

这是一个 javascript/jQuery 函数。在这里,我正在从 javascript 访问 grails 会话变量

 function changeContactPersonDetails(value){
    alert(value)
    //alert(typeof(value))
    $("#billingPersonName").val("${session.traineeDetais.name[" + value + "]}");
 }

在这里,我想使用变量“ value”的值作为索引。但它给出了错误

 Caused by: groovy.lang.MissingPropertyException: Exception evaluating property ' + value + ' for java.util.Arrays$ArrayList, Reason: groovy.lang.MissingPropertyException: No such property:  + value +  for class: java.lang.String
    at E__Workspace_opaltpm_grails_app_views_trainingOrder__billingDetailsTemplate_gsp$_run_closure1.doCall(E__Workspace_opaltpm_grails_app_views_trainingOrder__billingDetailsTemplate_gsp:15)
4

1 回答 1

3

您正在混合服务器端和客户端代码。

该变量value是您的(客户端)jquery 函数的参数。

以下代码${session.traineeDetais.name[" + value + "]}由 grails(服务器端)执行,其中变量value未知。

您必须将数组传递给您的客户端,以便您可以在 jquery 函数中访问它。

用于JSON传递这样的数据:

var dataFromServer =  ${session.traineeDetais.name as grails.converters.JSON}

function changeContactPersonDetails(value){
    alert(value)
    $("#billingPersonName").val(dataFromServer[value]);
}

一种更简洁的方法是在控制器中计算/转换您的数组并将其传递给视图......

于 2013-09-03T07:11:50.950 回答