在正常情况下,您通过密钥获取值,即使用<%= name%>获取name的值,您必须知道密钥是“name”。我的问题是,如果您首先不知道json字段的键,您如何遍历它们,例如,将所有键值对转储到表中?
答案 0 :(得分: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
}));
一起玩的小提琴
答案 1 :(得分:3)
您不必重建JSON结构。
试试
_.each(list,function(key,value,field){
key + ':' + value
})
答案 2 :(得分:0)
鉴于JSON您不知道Key
或Value
,例如{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>