2

描述:

我正在尝试将 JSON 对象初始化到我的 javascript 模板中。

查看:views.tasks.task.js

@()

@import play.libs.Json
@import enums.TaskType

...
var taskTypes = @Html(@Json.stringify(TaskType.valuesJson()));

型号:任务类型

public enum TaskType {

@EnumValue("General")
GENERAL(1, "General", "label-info", "item-blue");

...

public static JsonNode valuesJson() {
    ArrayNode arr = Json.newObject().arrayNode();
    for(TaskType tt: values()){
        arr.add(tt.jsonNode());
    }

    return arr;
}

结果:

taskTypes = [{\"value\":\"General\",\"label\":\"label-info\",\"itemColor\":\"item-blue\"}];

预期的:

taskTypes = [{"value":"General","label":"label-info","itemColor":"item-blue"}];


问题:如何在不逃跑的情况下做到这一点?为什么@Html(...)不起作用?

4

1 回答 1

2

解决方案: @JavaScript(Json.stringify(TaskType.valuesJson()));

说明: 播放文件“*.js”使用JavaScript模板格式,所以你需要使用@JavaScript而不是@Html。了解模板引擎的工作原理后就很清楚了...

资料来源:

于 2015-02-09T03:45:14.480 回答