Node.js 如何使用jade模板接受来自多个源的信息并使用include语句显示
我有这个模板:Node.js 如何使用jade模板接受来自多个源的信息并使用include语句显示,node.js,mongodb,include,express,pug,Node.js,Mongodb,Include,Express,Pug,我有这个模板: .bar .titleBox a.title(href=URL) #{title} 我想在另一个页面titles.jade中多次包含它,如下所示: #contentBox include bar include bar include bar 我希望每个URL和标题都有不同的值 我在节点中有以下代码: read(function(post){ //post is an array of objects retrieved from a mongodb
.bar
.titleBox
a.title(href=URL) #{title}
我想在另一个页面titles.jade中多次包含它,如下所示:
#contentBox
include bar
include bar
include bar
我希望每个URL和标题都有不同的值
我在节点中有以下代码:
read(function(post){ //post is an array of objects retrieved from a mongodb collection
// I was thinking of using a for loop to iterate through the array
res.render('titles', {title: post[i].title, url: post[i].URL});
我怎样才能达到我想要的结果呢?我不确定这些对象代表什么,但我假设现在我们谈论的是书籍。如果您的jade模板可以作为本地模板获取书籍列表-例如,如果它重新设计为:
res.render('books_index', {books: [{title: 'dune', url: 'http://www.dunenovels.com'},...]})
你可以用一个。大概是这样的:
mixin listBooks(books)
each book in books
.bar
.titleBox
a.title(href=book.url)= book.title
稍后在模板中,您可以渲染mixin:
mixin listBooks(books)
这个解决方案对我帮助很大,但是我可以使用mixin在不同的jade页面上显示不同书籍的信息吗?我不确定我是否回答了你的问题,但是你可以将mixin放在它自己的文件中,并像其他模板一样包含它。然后,任何从图书列表中获益的页面都可以包含mixin并使用它。呈现的内容当然取决于呈现特定视图时
书籍的值。