我正在尝试在javascript中访问Scala值,但它给了我错误。
Scala模板 - login.scala.html: -
@import com.tempapp.Constants.Languages
<html>
...
</html>
<script>
var langs = @Languages.values; // Error
...
</script>
Languages
是一个枚举: -
public enum Languages{
ENGLISH, VIETNAMESE;
}
错误: - 未捕获的ReferenceError:未定义ENGLISHVIETNAMESE 在HTMLDocument。 (商家:282) 在j(jquery-2.1.4.min.js:2) at Object.fireWith [as resolveWith](jquery-2.1.4.min.js:2) 在Function.ready(jquery-2.1.4.min.js:2) 在HTMLDocument.I(jquery-2.1.4.min.js:2)
答案 0 :(得分:1)
您不能将enum
的值转储到Javascript变量中。
您需要将enum
转换为以逗号分隔的字符串,然后将其括在[]
内:
var langs = [@Arrays.toString(Languages.values()).replaceAll("^.|.$", "").replaceAll("(?<=[\n, ]?)([^\n, ]+)(?=[\n, ]?)","'$1'")];
对于包含@Prefix
的版本,您只需将Scala
变量括在引号内:
var prefix = '@Prefix';