Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Javascript 从对象拆分数组并在下划线模板中使用_Javascript_Arrays_Object_Underscore.js - Fatal编程技术网

Javascript 从对象拆分数组并在下划线模板中使用

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

下面是我使用$.getJSON从服务器得到的响应。我希望能够分别调用每个数组,以便使用下划线js模板输出数据

如何拆分数组或分别调用每个数组来执行必要的循环以显示保留的和传递的数据

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