1

appjsファイルで、すべての記事のタイトルを降順で表示しようとしています。これは正常に機能します。問題は、マングースが配列を返すことであり、これをハンドルバーに書き込む方法がわかりません。

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変数が返すものです(テスト用に2つの投稿のみ)

[ { _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) } ]
4

1 に答える 1

6

配列#eachを反復処理するために使用する必要があります。

eachブロックヘルパー

each組み込みのヘルパーを使用して、リストを反復処理できます。ブロック内では、this繰り返し使用される要素を参照するために使用できます。

だからこのようなもの:

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

デモ: http: //jsfiddle.net/ambiguous/vZyHn/

またはあなたはそれに口ひげスタイルにすることができます:

セクション

セクションは、現在のコンテキストでのキーの値に応じて、テキストのブロックを1回以上レンダリングします。

セクションはポンドで始まり、スラッシュで終わります。つまり{{#person}}、「人」セクションを開始し、{{/person}}終了します。

したがって、これも機能します。

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

デモ: http: //jsfiddle.net/ambiguous/qyE9b/

于 2012-07-28T18:49:24.757 に答える