Javascript 从对象拆分数组并在下划线模板中使用
下面是我使用$.getJSON从服务器得到的响应。我希望能够分别调用每个数组,以便使用下划线js模板输出数据 如何拆分数组或分别调用每个数组来执行必要的循环以显示保留的和传递的数据Javascript 从对象拆分数组并在下划线模板中使用,javascript,arrays,object,underscore.js,Javascript,Arrays,Object,Underscore.js,下面是我使用$.getJSON从服务器得到的响应。我希望能够分别调用每个数组,以便使用下划线js模板输出数据 如何拆分数组或分别调用每个数组来执行必要的循环以显示保留的和传递的数据 { kept: [ 0: { counter: "1", image: "image1.png", name: "alias" }, 1: { counter: "1
{
kept: [
0: {
counter: "1",
image: "image1.png",
name: "alias"
},
1: {
counter: "1",
image: "image2.png",
name: "lorem"
}
],
passed: [
0: {
counter: "1",
image: "image3.png",
name: ""dolores""
},
1: {
counter: "1"
image: "image4.png"
name: ""quisquam""
}
]
}
尝试将服务器响应分配给变量
text
,然后执行以下操作:
var text=$.getJSON ;
/* var text='{
kept: [
0: {
counter: "1",
image: "image1.png",
name: "alias"
},
1: {
counter: "1",
image: "image2.png",
name: "lorem"
}
],
passed: [
0: {
counter: "1",
image: "image3.png",
name: ""dolores""
},
1: {
counter: "1"
image: "image4.png"
name: ""quisquam""
}
]
}'; */
var json = JSON.parse(text);
var kept=json.kept;
var passed=json.passed;
/* then do what you want or loop through them with kept.length and passed.length*/
这应该可以做到。您可以在模板中获得保留和传递,因为这些是对象属性,如下所示
<script type="text/template" id="tpl">
<h1>kept</h1>
<% _.each(data.kept, function(el) { %>
<p><%= el.name %></p>
<p><%= el.image %></p>
<p><%= el.name %></p>
<% }); %>
<h1>passed</h1>
<% _.each(data.passed, function(el) { %>
<p><%= el.counter %></p>
<p><%= el.image %></p>
<p><%= el.name %></p>
<% }); %>
</script>
_.template($('#tpl').html(), {data: data})
保持
通过
_.template($('#tpl').html(),{data:data})