html - 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] || "";
}
解决方案
像这样:
{
"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}}
推荐阅读
- javascript - 返回的 Promise 有什么区别?
- php - laravel 调度在 Windows 中不起作用
- firebase - 错误:无法将“AuthResult”类型的值分配给“FirebaseUser”类型的变量
- android - OneSignal 推送通知 | 在聊天时禁用它们进行聊天| 安卓
- excel - 根据参考 [Excel] 将值从一列添加到另一列
- django - 将值软编码到 yaml 文件以用于 loaddata 选项
- sql - 为什么计数结果与正常的选择行计数不同?在极光 Postgresql
- sql - 每个派生表都必须有自己的别名 - 即使我为每个表都有别名
- yocto - 在 yocto 配方中生成一个文件并将其部署到映像中
- php - 通过Ajax价格数据来形成输入文本,而不是选择产品的价格,而是总是带第一个价格