我試圖訪問EJS模板中的嵌套數組。在我的後端,我將這個渲染出來,'lists'是一個商業數組,userId是會話中的用戶_id。嵌套的EJS模板循環
res.render('listOfBusinesses', {lists:business, userId:loggedUserID});
在前端,我通過列表循環和得到正確的屬性值,然而一個屬性是跟隨_ids,我需要跨越與用戶id檢查數組給任何後續按鈕或一個取消關注按鈕。
前端看起來是這樣的:
<% for (var i = 0; i < lists.length; i++) { %>
<div class="col-xs-6 col-sm-4 panel">
<a href="/busProfileFromUser?busId=<%= lists[i]._id %>">
<img src="<%= lists[i].imgpath %>" class="img-responsive follow-img" />
</a>
</div>
如預期,但物業lists[i].followers
是,我需要遍歷一次,但就是不能把語法正確的數組上述作品。
我這樣的思考:
for (var i = 0; i< lists[i].followers.length; i++){
if (list[i] == userId) {
<button>Follow</button>
} else {
<button>Unfollow</button>
}
}
非常感激您的任何意見!
幾乎有這個解決方案,被卡住了一段時間,但部分問題是變量傳遞在渲染被用於條件語句,這是檢查對象ID等於一個字符串。所以我打電話給toString()以確保它們是對齊字符串。它現在正在返回正確的按鈕,但它只返回一個按鈕,並且不顯示其他任何業務列表的任何內容。 任何人都可以擺脫任何光線爲什麼其他按鍵不顯示
<% for (var j = 0; j < lists[i].followers.length; j++) {%>
<% if (lists[i].followers[j].toString() == userId.toString()) { %>
<button>Unfollow</button>
<% } else { %>
<button>FOLLOW</button>
<% } %>
<% } %>
謝謝你看起來像我需要的語法,它幾乎可以工作,出於某種原因它根本不呈現第二個條件。我有5個虛擬企業,其中用戶遵循2個,並且2個按鈕正在渲染,但沒有渲染其他。 – user2947979
這個問題的聲音更具體一些,取決於渲染的模型。如果我能看到這些數據,我只能幫助你,因爲在EJS方面它應該可以正常工作。 –
嘗試使用該數據更新您的問題,預期結果和結果。 –