0

正常情况下是通过key获取值,即用<%= name %>获取name的值,你要知道key是“name”。我的问题是,如果您一开始不知道 json 字段的键,您如何遍历它们,例如,将所有键值对转储到一个表中?

4

3 回答 3

5

您可以将对象转换为具有键和值作为属性的对象数组。例如,

var obj = {one: 1, two: 2, three: 3};

var fields = _.map(
    _.pairs(obj),
    function(pair) {
        return {
            key: pair[0],
            value: pair[1]
        };
    }
);

会产生[{key: "one", value: 1}, {key: "two", value: 2}, {key: "three", value: 3}]

然后,您可以将此数组输入到您的模板中,例如

var template = _.template(
    '<% _(list).each(function(field) { %>'+
        '<%= field.key %> : <%= field.value %><br>'+
    '<% }); %>'
);
$('body').append(template({
    list: fields
}));

还有一个可以玩的小提琴http://jsfiddle.net/nikoshr/kvxuN/

于 2013-07-18T16:37:22.463 回答
3

您不必重建 JSON 结构。

试试看嘛

_.each(list,function(key,value,field){
key + ':' + value 

})
于 2013-11-26T08:22:10.337 回答
0

给定 JSON,您不知道KeyorValue并且{Bob : "01/01/2000", Jane : "10/10/2001"}您想使用 Underscore 模板:

options = {Bob : "01/01/2000", Jane : "10/10/2001"}


$.each(options, function (name, age) {
    $("#target-div").append(_.template($("#template-name-age").html(), { Name : name, Age : age }))
})


<script type="text/template" id="template-name-age">
    <div data-name="<%= Name %>" class="some-css-class"><%= Age %></div>
</script>
于 2015-10-23T15:30:38.747 回答