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
不起作用。为什么?