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 に答える