如何在下划线模板/ CLNDR中访问自定义事件类的数组值

时间:2019-06-21 15:58:17

标签: jquery underscore.js underscores

对此感到困惑。

尝试在CLNDR下划线模板上为事件日添加自定义类。

这是我的下划线模板摘录:

<div class="days clearfix">
<% _.each(days, function(day) { %>
<%= console.log(day.events[0]) %>
<div class="<%= day.classes %>" id="<%= day.id %>"><span class="day-number"><%= day.day %></span></div>
<% }); %>
</div>

console.log(day.events[0])中,我将获得一个具有以下日期值的数组:

enter image description here

我尝试使用显而易见的day.events[0].type<div class="<%= day.classes %> <%= day.events[0].type %>"访问此数组中的type属性,但始终在控制台中获取此错误消息:Uncaught TypeError: Cannot read property 'type' of undefined

如何访问控制台记录的关联数组中的类型值,并将其插入到模板中,在我的模板中渲染单词“ incoming”(数组中的类型值)以及<%= day.classes %>模板?

1 个答案:

答案 0 :(得分:0)

我不确定这不是最优雅的解决方案,但我可以通过将_.eachif语句一起使用来仅返回第一个type值来使其工作:

<% _.each(days, function(day) { %>
<div class="<%= day.classes %><% _.each(day.events, function(k, v) { %><% if (v == 0) { %> <%= k.type %><% } %><% }); %>"><span class="day-number"><%= day.day %></span></div>
<% }); %>

似乎按预期工作。.我敢肯定,如果有人愿意分享的话,会有更好的答案。对于为什么我无法使用day.events[0].type直接访问值,我仍然感到困惑-这是我认为的最佳选择。 each循环似乎是一种骇人的解决方法。