具有未知属性名称的小胡子模板

时间:2014-11-04 00:25:14

标签: javascript mustache

是否可以模拟具有未知属性的对象数组?

var objs: [{
  propA: 'A',
  propB: 'B',
  propC: 'A',
  propD: 'B'
}];

模板可以是:

<ul>
  <li>{{property_name}}: {{property_value}}</li>
</ul>

2 个答案:

答案 0 :(得分:0)

首先应该以正确的方式定义一个对象数组:

var myarray=[{propA:'valueA'},{propB:'valueB'}]

然后通过索引或任何迭代方法引用每个对象

<ul>
  <li>{{Object.keys(myarray[0])}}:{{myarray[0]['propA']}}</li>
</ul>

答案 1 :(得分:0)

在这里,您可以了解如何获取密钥和值:

HTML

<script type="text/html" id="tmpl">
    {{#objs}}

         <div>
         {{key}}: {{value}}
        </div>

    {{/objs}}
</script>

的JavaScript

$(document).ready(function () {
    var output = $("#output");
    var template = $("#tmpl").html();

    var objs = [{
        propA: 'A',
        propB: 'B',
        propC: 'C',
        propD: 'D'
    }];

    var mustacheFormattedData = {
        'objs': []
    };

    for (var prop in objs[0]) {
        if (objs[0].hasOwnProperty(prop)) {
            mustacheFormattedData['objs'].push({
                'key': prop,
                    'value': objs[0][prop]
            });
        }
    }

    var html = Mustache.render(template, mustacheFormattedData);
    output.append(html);

});

演示:http://jsfiddle.net/moogs/qK5NT/83/