如何将scala列表转换为javascript数组?

Mar*_*kku 9 javascript scala playframework-2.0 scala-template

有更简单的方法吗?

 $(document).ready(function () {
        var jsArray = []
        @if(scalaList != null) {
            @for(id <- scalaList) {
            jsArray.push('@id');
           }
        }
    ...
    }
Run Code Online (Sandbox Code Playgroud)

Rya*_*yan 8

它简单如下:

import play.api.libs.json.Json

val jsArr: JsValue = Json.toJson(scalaList)
Run Code Online (Sandbox Code Playgroud)

您也可以在模板中执行此操作:

@(list: List[Any])

@import play.api.libs.json.Json

<script type="text/javascript">
    $(document).ready(function () {
        var jsArr = @Json.toJson(list);
        console.log(jsArr);
    });
</script>
Run Code Online (Sandbox Code Playgroud)

  • 它应该是@Html(Json.stringify(Json.toJson(list))) (2认同)

kor*_*efn 2

你有没有尝试过类似的事情:

var jsArray = new Array(@scalaList.map(x => "\"" + x + "\"").mkString(","));
Run Code Online (Sandbox Code Playgroud)

或者你可以使用像这样的字面意思

var jaArray = [    var jsArray = [@scalaList.map(x => "\"" + x + "\"").mkString(",")];
Run Code Online (Sandbox Code Playgroud)

也不if需要检查。For理解力就这么聪明

$(document).ready(function () {
    var jsArray = [@scalaList.map(x => "\"" + x + "\"").mkString(",")];
    ...
}
Run Code Online (Sandbox Code Playgroud)