首页 > 解决方案 > Mustache 语法:有条件地打印 HTML

问题描述

我有一个 JSON 格式:

{
  "repo": [
    { "type": "A" },
    { "type": "B" },
    { "type": "B" },
    { "type": "C" }
  ]
}

我使用 Mustache 语法在 HTML 中打印,如下所示

{{#repo}}
  {{type}}
{{/repo}}

现在,基于类型 A、B 或 CI 需要使用给定的映射有条件地打印某些单词:

"A" = "Small"
"B" = "Medium"
"C" = "Big"

有什么办法可以用 Mustache 做到这一点?

var txt = '{"repo": [{ "type": "A" },{ "type": "B" },{ "type": "B" },{ "type": "C" }],"typeMapped":{},"types": {"A": "Small",   "B": "Medium","C": "Big"}}';

var obj = JSON.parse(txt);

obj.typeMapped = function () {
    return obj.types[obj.type] || "";
  }

标签: htmljsonmustache

解决方案


像这样:

{
  "repo": [
    { "type": "A" },
    { "type": "B" },
    { "type": "B" },
    { "type": "C" }
  ], 
  "typeMapped": function () {
    return this.types[this.type] || "";
  }, 
  "types": {
    "A": "Small",
    "B": "Medium",
    "C": "Big"
  }
}
{{#repo}}
  {{type}}: {{typeMapped}}
{{/repo}}


推荐阅读