Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在主干/下划线模板中迭代任意json_Json_Backbone.js_Underscore.js_Template Engine - Fatal编程技术网

在主干/下划线模板中迭代任意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[

在正常情况下,您通过键获取值,即获取name的值,您必须知道键是“name”。我的问题是,如果您首先不知道json字段的键,如何迭代它们,例如,转储表中的所有键-值对

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

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}))
})

使用。非常感谢!通常我会等一段时间再接受答案,但这次没有必要!谢谢,这很有帮助。然而。