Синтаксис усов: условно печатать HTML - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть JSON вида:

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

, который я печатаю в HTML с использованием синтаксиса усов, как показано ниже

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

Теперь, основываясь на типе A,B или CI нужно печатать определенные слова условно с заданным отображением:

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

Есть ли способ сделать это с усами?

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] || "";
  }

1 Ответ

0 голосов
/ 22 февраля 2019

Вроде так:

{
  "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}}
...