Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 在json对象中循环出现问题_Javascript_Json_Underscore.js - Fatal编程技术网

Javascript 在json对象中循环出现问题

Javascript 在json对象中循环出现问题,javascript,json,underscore.js,Javascript,Json,Underscore.js,我有如下数组 var data = [ { title: 'This is title', desc: 'This is desc', date: '07:12' }, { title: 'This is title2', desc: 'This is desc2

我有如下数组

  var data = [
            {
                title: 'This is title',
                desc: 'This is desc',
                date: '07:12'
            },
            {
                title: 'This is title2',
                desc: 'This is desc2',
                date: '04:12'
            },
            {
                title: 'This is title3',
                desc: 'This is desc3',
                date: '09:12'
            }
        ];
现在我想循环使用下划线JS模板显示这些数据。我正在尝试以下是不工作的

<% _.each(function () { %>
        <li>
            <span class="time"><%= date %></span>
            <p><%= title %></p>
            <p><%= desc %></p>
        </li>
    <% }); %>

我正在将上述对象传递给我的模板,然后在其中循环以显示。

您需要指定要循环的对象:

<% _.each(data,function (elem) { %>
    <li>
        <span class="time"><%= elem.date %></span>
        <p><%= elem.title %></p>
        <p><%= elem.desc %></p>
    </li>
<% }); %>


  • 请参阅。

    您需要指定正在循环的对象:

    <% _.each(data,function (elem) { %>
        <li>
            <span class="time"><%= elem.date %></span>
            <p><%= elem.title %></p>
            <p><%= elem.desc %></p>
        </li>
    <% }); %>
    
    
    
  • 请参阅中的。

    计算模板函数时,传入具有 与模板的自由变量相对应的属性。如果你是 写一个一次性的,可以将数据对象作为第二个传递 参数设置为模板,以便立即渲染而不是 返回模板函数

    您在模板中使用的下划线代码的工作方式与您正常编写的方式相同<代码>\每个至少需要两个参数。首先是要迭代的项目列表,然后是对每个项目执行的操作

    _.each([1, 2, 3], alert);
    
    您需要对模板执行相同的操作

    <% _.each(dataSet, function (item) { %>
        <li>
            <span class="time"><%= item.date %></span>
            <p><%= item.title %></p>
            <p><%= item.desc %></p>
        </li>
    <% }); %>
    
    var rendered_html = _.template(template, {dataSet: data})
    
    
    
  • var rendered_html=u.template(模板,{dataSet:data})
    请注意,第二个对象是如何传递到
    的。template
    包含一个
    dataSet
    键的。我们传递到
    \u.template
    中的键可以在我们的模板代码中用于引用与它们关联的值

    您可以在这里看到一个示例:

    来自

    计算模板函数时,传入具有 与模板的自由变量相对应的属性。如果你是 写一个一次性的,可以将数据对象作为第二个传递 参数设置为模板,以便立即渲染而不是 返回模板函数

    您在模板中使用的下划线代码的工作方式与您正常编写的方式相同<代码>\每个至少需要两个参数。首先是要迭代的项目列表,然后是对每个项目执行的操作

    _.each([1, 2, 3], alert);
    
    您需要对模板执行相同的操作

    <% _.each(dataSet, function (item) { %>
        <li>
            <span class="time"><%= item.date %></span>
            <p><%= item.title %></p>
            <p><%= item.desc %></p>
        </li>
    <% }); %>
    
    var rendered_html = _.template(template, {dataSet: data})
    
    
    
  • var rendered_html=u.template(模板,{dataSet:data})
    请注意,第二个对象是如何传递到
    的。template
    包含一个
    dataSet
    键的。我们传递到
    \u.template
    中的键可以在我们的模板代码中用于引用与它们关联的值


    您可以在这里看到一个示例:

    在将数组传递到模板中时,必须为数组指定一个名称:

    this.$el.html(_.template(MessageTemplate, { 'items': this.model.toJSON() }));
    
    <% _.each(items, function (item) { %>
        <li>
            <span class="time"><%= item.date %></span>
            <p><%= item.title %></p>
            <p><%= item.desc %></p>
        </li>
    <% }); %>
    
    现在,您可以在模板中引用要循环的数组:

    this.$el.html(_.template(MessageTemplate, { 'items': this.model.toJSON() }));
    
    <% _.each(items, function (item) { %>
        <li>
            <span class="time"><%= item.date %></span>
            <p><%= item.title %></p>
            <p><%= item.desc %></p>
        </li>
    <% }); %>
    
    
    

  • 在将数组传递到模板中时,必须为数组指定一个名称:

    this.$el.html(_.template(MessageTemplate, { 'items': this.model.toJSON() }));
    
    <% _.each(items, function (item) { %>
        <li>
            <span class="time"><%= item.date %></span>
            <p><%= item.title %></p>
            <p><%= item.desc %></p>
        </li>
    <% }); %>
    
    现在,您可以在模板中引用要循环的数组:

    this.$el.html(_.template(MessageTemplate, { 'items': this.model.toJSON() }));
    
    <% _.each(items, function (item) { %>
        <li>
            <span class="time"><%= item.date %></span>
            <p><%= item.title %></p>
            <p><%= item.desc %></p>
        </li>
    <% }); %>
    
    
    


  • 这是无效的JSON。这些对象应该在一个数组中吗?请参阅
    \的文档。每一个
    您最终做了什么?这不是有效的JSON。这些对象应该在一个数组中吗?请参阅
    \的文档。每个
    您最终做了什么?这显示了此错误
    未捕获类型错误:无法调用未定义的方法“call”
    这使我怀疑您的其余代码还有其他问题。我试着在我的盒子上写一个简单的测试,它成功了。您介意创建一个简化的JSFIDLE来说明您的问题吗?实际上,它不是json对象。这是一个数组。谁说过JSON对象?请你制作一个小提琴来说明你的问题,或者至少发布更多的代码?否则我就帮不上忙了you@BenjaminGruenbaum您还需要将对象传递给
    。每个
    。这显示了此错误
    未捕获类型错误:无法调用未定义的方法“call”
    。这使我怀疑您的其余代码还有其他问题。我试着在我的盒子上写一个简单的测试,它成功了。您介意创建一个简化的JSFIDLE来说明您的问题吗?实际上,它不是json对象。这是一个数组。谁说过JSON对象?请你制作一个小提琴来说明你的问题,或者至少发布更多的代码?否则我就帮不上忙了you@BenjaminGruenbaum您还需要将对象传递给
    。上面的每个
    。都显示了此错误
    未捕获引用错误:未定义数据
    ,这可能是因为未定义数据。。。检查jsbin链接。这不是一个功能齐全的主干网示例,但它应该对您有所帮助。这似乎在某种程度上起了作用。但是,当我
    内部时,每个()在模板内部。它显示所有对象的标题、说明和日期。因此,
    item.title、item.desc和item.time
    不起作用。为什么?上面显示了此错误
    未捕获引用错误:未定义数据
    ,这可能是因为未定义数据。。。检查jsbin链接。这不是一个功能齐全的主干网示例,但它应该对您有所帮助。这似乎在某种程度上起了作用。但是,当我
    内部时,每个()在模板内部。它显示所有对象的标题、说明和日期。因此,
    item.title、item.desc和item.time
    不起作用。为什么?