2012-07-28 2 views
1

내 appjs 파일에서 모든 기사 제목을 내림차순으로 표시하려고합니다. 이 잘 작동합니다, 문제는 mongoose 배열을 반환하고 어떻게 핸들을이 쓰기를 모르겠습니다.핸들 바를 배열에서 모두 렌더링합니다.

var bmtitles = BlogModel.find().select('title date').sort("date", -1); 

bmtitles.execFind(function(err, ttles) { 
    console.log(ttles); 
      var model = { 
        layout:'blog.hbs', 
        BmTitles: ttles, 
       }; 
    //render page 
    res.render('blog', model); 
}); 

것은 내가 없음 작업 그러나이 같은 것들을 시도했습니다는 :

{{BmTitles.n.title}} 
{{BmTitles.title}} 
{{BmTitles}} 

이 무엇인지 ttles 변수 반환 (테스트를 위해 두 개의 게시물)

[ { _id: 5011b563a947b943dc32d6f5, 
    title: 'Blog title one', 
    date: Sun Jan 01 2012 18:00:00 GMT-0600 (CST) }, 
    { _id: 5011c155a947b943dc32d6f6, 
    title: 'secondpost', 
    date: Sat Dec 31 2011 18:00:00 GMT-0600 (CST) } ] 

답변

6

당신이 원하는 것 배열에 을 사용하십시오.

each 블록 도우미

내장 된 each 도우미를 사용하여 목록을 반복 할 수 있습니다. 블록 내부에서 this을 사용하여 반복되는 요소를 참조 할 수 있습니다.

그래서 이런 식으로 뭔가 :

{{#each BmTitles}} 
    <p>{{_id}}: {{title}}</p> 
{{/each}} 

데모 : http://jsfiddle.net/ambiguous/vZyHn/

또는 당신이 그것을 Mustache-style을 위해 할 수있는 :

섹션

SECTIO ns는 현재 컨텍스트의 키 값에 따라 텍스트 블록을 한 번 이상 렌더링합니다.

섹션은 파운드로 시작하고 슬래시로 끝납니다. 즉, {{#person}}은 "사람"섹션을 시작하고 {{/person}}은 끝납니다.

그래서 이것은 또한 작동합니다

{{#BmTitles}} 
    <p>{{_id}}: {{title}}</p> 
{{/BmTitles}} 

데모 :

+0

http://jsfiddle.net/ambiguous/qyE9b/ 내가 원하는 정확히였습니다, 감사합니다. 나는 너의 대답을 받아 들였다. – lostAstronaut

+0

개체 배열을 사용하고 있는데 내 개체에 부모 이름이 없으므로이 줄이 내게't ({BmTitles : ttles}) '로 고쳐졌습니다. 나는 그 이름을 지어야한다는 것을 깨닫지 못했습니다. 감사! – guanome

관련 문제