このように grails オブジェクトに JavaScript 変数を割り当てることはできますか?
var newReport = ${report};
report
コントローラーから gsp ファイルに戻される grails ドメイン オブジェクトです。
現在、これは私のページでは機能しません。
このように grails オブジェクトに JavaScript 変数を割り当てることはできますか?
var newReport = ${report};
report
コントローラーから gsp ファイルに戻される grails ドメイン オブジェクトです。
現在、これは私のページでは機能しません。
レポートが Grails ドメイン クラスであると仮定すると、これを有効な JavaScript 形式に「変換」する必要があります。1 つの方法は、これを JSON として設定することです。何かのようなもの:
コントローラーで
def reportJson = report as JSON
gspでは
<script type='text/javascript'>
var newReport = $.parseJSON("${reportJson}");
</script>
parseJSON は json 文字列を受け取り、javascript オブジェクトを返します。
ドメイン オブジェクトを JSON として gsp にレンダリングするだけです。ここで、一部の JavaScript コードはeval()関数によって json を取得します。例えば:
ドメイン クラス - バンド:
String bandName //some property
...
コントローラ:
def bands = Band.list()
render(template:"result", model:[bands:bands as JSON]
_result.gsp:
<script>
var bandList = eval(${bands});
for(i=0; i<bandList.length; i++){
var name = bandList[i].bandName;
....
}
....
</script>