如何在hogan-express模板引擎中传递数组

如何使用hogan-express将下面的数组传递给HTML页面? 我正在尝试,但似乎并没有工作。

我的代码:

apiRouter.get('/myPosts', function(req, res, next){ userModel.findOne({'profileID':req.session.facebookProfileId}, function(err, userPosts) { if(userPosts) { res.render('myPosts', {title:siteName + ': My Posts', posts:userPosts.posts}); } else { console.log('You do not have any posts'); } }) }) 

顺便说一下, userPosts.posts如下所示:

 ["123","124","125"] 

myPosts.html页面如下:

 <!doctype html> <head> <meta charset="UTF-8"> <title>{{title}}</title> </head> <body> <p><a href="/posts?id={{posts[0].value}}">Post 1</a></p> <p><a href="/posts?id={{posts[1].value}}">Post 2</a></p> </body> </html> 

顺便说一下,{{title}}位正在通过。

总之:你不能,至less不是那样的。

可以做的是遍历post:

 {{#posts}} <p><a href="/posts?id={{.}}">Post 1</a></p> {{/posts}} 

但是,这会给您带来每个链接的文本内容问题( “Post 1” )。 为了解决这个问题,你需要处理数组服务器端,然后再传递给它。

例如:

 res.render('myPosts', { title : siteName + ': My Posts', posts : userPosts.posts.map(function(postId, idx) { return { postId : postId, postNum : 1 + idx }; }) }); 

和模板:

 {{#posts}} <p><a href="/posts?id={{postId}}">Post {{postNum}}</a></p> {{/posts}} 

呈现的HTML将如下所示:

 <p><a href="/posts?id=123">Post 1</a></p> <p><a href="/posts?id=124">Post 2</a></p> <p><a href="/posts?id=125">Post 3</a></p>