在主干/下划线模板中迭代任意json
在正常情况下,您通过键获取值,即获取name的值,您必须知道键是“name”。我的问题是,如果您首先不知道json字段的键,如何迭代它们,例如,转储表中的所有键-值对 您可以将对象转换为具有键和值作为属性的对象数组。比如说,在主干/下划线模板中迭代任意json,json,backbone.js,underscore.js,template-engine,Json,Backbone.js,Underscore.js,Template Engine,在正常情况下,您通过键获取值,即获取name的值,您必须知道键是“name”。我的问题是,如果您首先不知道json字段的键,如何迭代它们,例如,转储表中的所有键-值对 您可以将对象转换为具有键和值作为属性的对象数组。比如说, var obj = {one: 1, two: 2, three: 3}; var fields = _.map( _.pairs(obj), function(pair) { return { key: pair[
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
}));
var-template=\uu.template(
''+
“:
”+
''
);
$('body').append(模板({
列表:字段
}));
还有一把小提琴,你不必重建JSON结构 试试看
_.each(list,function(key,value,field){
key + ':' + value
})
给定JSON,其中您不知道
键
或值
,例如{Bob:“01/01/2000”,Jane:“10/10/2001”}
,并且您希望使用下划线模板:
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>
options={Bob:“01/01/2000”,Jane:“10/10/2001”}
$。每个(选项、功能(名称、年龄){
$(“#target div”).append(#.template($(“#template name age”).html(),{name:name,age:age}))
})
使用。非常感谢!通常我会等一段时间再接受答案,但这次没有必要!谢谢,这很有帮助。然而。