javascript - 使用单个变量定义 Mustache 标签

标签 javascript jquery templates mustache

是否有任何选项可以使用一些定义变量来设置 Mustache 标签?像这样的事情:

Json

{
    "color_set_01": [
        "white", "black"
        ],
    "color_set_02": [
        "green", "red"
    ]
}

JavaScript

var color = 'color_set_' + options.number;

$.getJSON('json/data.json', function(data) {
    var template = "<ul>{{color}}<li class="{{.}}"></li>{{/color}}</ul>";
    var html = Mustache.to_html(template, data);
    colors_panel.html(html);
});

以及所需的结果(如果它是 color_set_01 数组

)
<div class="colors_panel">
    <ul>
      <li class="white">
      <li class="black">
    </ul>
</div>

最佳答案

好的,快速浏览一下 http://coenraets.org/blog/2011/12/tutorial-html-templates-with-mustache-js/ 后,我认为这会起作用:

var template = "<ul>{{#"+color+"}}<li class=\"{{.}}\"></li>{{/"+color+"}}</ul>";

看起来#设置了使用列表的能力,.基本上是列表的每一项。另外,您需要转义模板字符串中的引号。

这还假设您的 JSON 应该如下所示:

{
    "color_set_01": [
        "white", "black"
    ],
    "color_set_02": [
        "green", "yellow"
    ]
}

如果您的 JSON 中有多个 color_set,那么您必须显示 color_set_01 的父级直到顶部,以便我进一步提供帮助.

关于javascript - 使用单个变量定义 Mustache 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17148343/

相关文章:

javascript - 使用 Ruby on Rails 绘制过去 30 天的 Highcharts 数据

Javascript 正则表达式验证不太有效

javascript - 使用透视矩阵不出现正方形

Javascript 使用变量属性名称来赋值

c++ - shared_ptr 的多个类内部 typedef

javascript - extjs 示例代码不起作用

带有 $(this) 的 jQuery 多重选择器

Jquery 和 :active selector

c++ - 为什么 std::is_rvalue_reference 没有按照广告宣传的那样做?

eclipse - 如何使用现有项目作为 Eclipse (CDT) 新项目的模板?