1
我有一個玉的模板,我打印出一個貓鼬對象的屬性。該對象具有通過貓鼬的dbref-like填充功能填充的屬性。模板呈現時,我得到廢話。玉在模板中呈現意外值爲「填充」貓鼬屬性
簡化的例子:
a.training-link(href='/training/#{training.details.id}') ...
在瀏覽器
:
在路由User.findById(req.params.user, function(err, user){
res.render('training', {training:user.training});
}).populate('training.details');
在模板
<a href="/training/O >°Cm5�" class="training-link">...</a>
第一次頁面加載,在哪裏我期望一個正規的mongo十六進制字符串(4fac4e5f379cb0a68100015d)我得到類似「O >°Cm5 」的東西。這隻發生在服務器重新啓動後的首頁加載中。隨後的所有頁面加載都按預期呈現。
這裏發生了什麼,我該如何解決?
謝謝。
有兩個問題:1.'populate' [不是遞歸](https://github.com/LearnBoost/mongoose/issues/601)。在你的例子中,你正在填充'user.training'。你是否也填充'user.training.details'? 2.在渲染之前確定填充已完成嗎?爲什麼不在'populate'的回調中進行渲染,而不是從'findById'回調? – Nate
你是對的。我在抄錄時很sl in。它應該讀取'.populate('training.details')'。我編輯了我的問題來反映這一點。 – smabbott