【问题标题】:Play2.2 Java - Prevent escaping on Javascript templatePlay2.2 Java - 防止在 Javascript 模板上转义
【发布时间】:2015-04-08 16:47:45
【问题描述】:

说明:

我正在尝试将 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(...) 不起作用?

【问题讨论】:

    标签: javascript json playframework playframework-2.2 scala-template


    【解决方案1】:

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

    解释: Play 对文件“*.js”使用 JavaScript 模板格式,因此您需要使用 @JavaScript 而不是 @Html。了解了模板引擎的工作原理后就清楚了……

    来源:

    【讨论】:

      猜你喜欢
      • 2016-10-28
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 2012-02-05
      • 2014-05-25
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多