我正在尝试将多个值传递到res.render
以传递到我的手柄模板中。它似乎符合条件,但它没有显示内容。
我正在尝试显示特殊的导航栏和用户片段(他们的数据),如果他们已登录。否则我想显示我的普通导航栏和所有片段(来自所有用户的数据)。
如果我只提交一个值,我就可以使用它,但我似乎无法交出多个值。
快递代码:
router.route('/')
.get(function (request, response) {
if (request.session.name) {
Snippet.find({ user: request.session.name._id }, function (err, data) {
if (err) {
console.log(err)
}
data.forEach(function (element, err) {
if (err) {
console.log(err)
}
})
let context = {
snippets: data.map(function (snippet) {
return {
_id: snippet._id,
user: snippet.user,
title: snippet.title,
body: snippet.body,
createdAt: snippet.createdAt
}
})
}
response.render('home/index', {loggedIn: true, context: context}) //Here is the issue
})
}
把手模板:
<ul class="people_list">
{{#if loggedIn}}
{{!-- Logged in --}}
{{#each snippets}}
<h2><i class="star fa fa-star-o" aria-hidden="true"></i> {{title}}</h2>
<h4>{{ createdAt }}</h4>
<pre>
<code class="language-javascript">{{body}}</code>
</pre>
<hr />
{{/each}}
{{else}}
{{!-- Not logged in --}}
{{#each snippets}}
<h2><i class="star fa fa-star-o" aria-hidden="true"></i> {{title}}</h2>
<h4>{{ createdAt }}</h4>
<pre>
<code class="language-javascript">{{body}}</code>
</pre>
<hr />
{{/each}}
{{/if}}
</ul>
答案 0 :(得分:1)
您传入一个名为context
的数组,但在把手代码中将其称为snippets
。
将把手模板更改为名为{{#each context}}
或将您的nodejs代码更改为response.render('home/index', {loggedIn: true, snippets: context})
。