私はindex.htmlファイル内のjsの変数を持っていると私はこのような割り当てやりたい:オートコンプリート用の文字列をjs変数に代入していますか?
var names=["${stateNames}"];
STATENAMESは、状態名を含むJavaの一覧です。上記のような割り当てを行うと、の名前はstateNamesに含まれるすべての状態名を持つようになりましたか?変数stateNamesは、再生コントローラからindex.htmlに渡されます。
上記の方法はありますか?
私はindex.htmlファイル内のjsの変数を持っていると私はこのような割り当てやりたい:オートコンプリート用の文字列をjs変数に代入していますか?
var names=["${stateNames}"];
STATENAMESは、状態名を含むJavaの一覧です。上記のような割り当てを行うと、の名前はstateNamesに含まれるすべての状態名を持つようになりましたか?変数stateNamesは、再生コントローラからindex.htmlに渡されます。
上記の方法はありますか?
ここではさまざまなオプションを使用できます。
オプション1を使用することができ、あなたはその後、ちょうどこれを使用することになり
package ext;
import play.templates.JavaExtensions;
import java.util.*;
public class MyExtensions extends JavaExtensions {
public static String stringifyList(List list) {
StringBuffer buff = new StringBuffer();
for (Object item: list) {
buff.append("'"+item.toString()+"'"+",");
}
return buff.toString();
}
}
の下のようなクラスを作成する必要があります
var names=[${list.stringifyList()}];
オプション2と3、あなたのビューでJavaExtensionを使用することによって、その
0123の下に詳述されています<script type="text/javascript">
// option 2
var names = new Array();
#{list items:list, as:'item'}
names.push('${item}');
#{/list}
// option 3
var names2 = [%{
for (String item: list) {
out.print("'"+item+"'"+",");
}
}%]
</script>
あなたがGroovyのテンプレートを使用している場合は、Groovyのcollection methodsへのアクセス権を持っているので、これは、簡単です:
var names=[${stateNames.collect{'"'+it+'"'}.join(",")}];
collect
はjoin
は、与えられた文字列で区切られた1つの大きな文字列を作成し、あなたのコレクションを変換します。
Scalaのバージョン:
var names = [@(stateNames.map{"\"" + _ + "\""}.mkString(","))];