无法在EJS中引用对象
我有一个对象,我正在传递到我的模板使用EJS和我继续得到一个错误说Cannot read property 'link' of undefined
,这里是对象,这里是模板代码。
我console.log对象,并得到这个:
{ _id: 583e4b76f1c8771c17d68ef2, username: 'asdf', __v: 0, favoriteMoments: [], favoriteEvents: [], likes: [], friends: [], moments: [], categories: [], events: [ { _id: 583e4bf8cc11c61c2887aa38, title: 'asdfasdf', description: 'asdf', __v: 0, comments: [], photos: [Object], moments: [], category: [Object], owner: [Object] } ] }
这是模板:
<div class="well event_list_page_event_boxes masonry_box"> <div class="img-responsive"> <a href="/event/<%= events._id %>"> <% if (events.photos.link === null){%> <div class="event_list_page_event_photo"><p>No Image Here</p></div> <% } else {%> <img class="event_list_page_event_photo" src="<%= events.photos.link %>" border="0" style="max-width: 100%"> <% } %> <%}) %> <div class="row"> <div class="col-sm-9"> <h4 class="event_list_page_event_header"><%= events.title %></h4> </div> <div class="col-sm-3"> <p class="event_list_page_event_date"><%= events.date %></p> </div> </div> <p class="event_list_page_event_description"><%= events.description %> </p> </a> </div> </div>
我明白,它没有看到events.photos
对象,但我不确定如何使其可见,所以我可以显示我的数据。
events
是一个数组,所以不是这样的:
events.photos.link
你将需要使用一个数组索引,例如:
events[0].photos.link
或者,您将需要迭代events
数组。
如果您正尝试为events
数组中的每个事件创build一个新的HTML块,那么您将需要在模板中使用某种循环(例如for
循环或.forEach()
循环),以便循环数组的每个元素。
在本文的“创build模板”部分有一个for
循环的ejs示例: http ://www.embeddedjs.com/getting_started.html