0
res.render
에 여러 값을 전달하여 내 핸들 바 템플릿에 전달하려고합니다. 조건을 충족시키는 것으로 보이지만 내용을 보여주지는 않습니다.Handlerbars에 .render()의 값 2 개를 전달하는 방법
로그인 할 때 특수한 navbar와 사용자 스 니펫 (데이터)을 표시하려고합니다. 그렇지 않으면 정상적인 navbar와 모든 스 니펫 (모든 사용자의 데이터)을 표시하려고합니다.
하나의 값만 입력하면 작동하지만 여러 값을 입력 할 수는 없습니다.
익스프레스 코드 :
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>
안녕하세요 @asasuri, 한 항목 (컨텍스트) 만 전달할 때 작동하지만 loggedIn 변수를 전달할 때 작동하지 않는다고 말하는 것입니까? –
또한 npm 패키지를 사용하고 있다고 말할 수 있습니까? 다수의 특급 핸들 바 모듈 (express-handlebars, express-hbs 등)이 있습니다. –
나는 express-secure-handlebars를 사용하고 있습니다. 그렇습니다. (context) – sasuri