我有一个我需要的数组,我需要传递表达,渲染,然后在Jade端迭代以显示所有结果,但是下面的函数不起作用。它只显示一个数据,五次来自数组。预期的行为是它将循环遍历数组并显示模板中每个对象之一。
玉的语法是否正确?文档非常清晰。
快速
router.get('/', function(req, res, next){
weekendPlans(function(err, theWeekend) {
if (err) throw err
console.log(theWeekend);
res.render('index', {theWeekend : theWeekend});
});
玉
h2 On This Weekend
.scroll
each result, i in theWeekend
div.title
#[a(target="_blank" href="#{theWeekend.url}") #{theWeekend.title}]
p WHEN: #{theWeekend.selectedDate}
数据
{ _id: 56fe9fe71f84acc2564b9fe8,
url: 'http://www.timeoutshanghai.com/features/Blog-Food__Drink/35271/Baristas-showcase-latte-art-in-Shanghai.html',
title: 'TIMEOUT',
selectedDate: Sat Apr 02 2016 01:00:00 GMT+0100 (BST),
__v: 0 }
答案 0 :(得分:1)
在您的Jade文件中,您正在迭代数据对象,该对象为对象中的每个键值对循环一次。如果您只想要一个数据对象条目,请尝试以下方法:
div.title
#[a(target="_blank" href="#{theWeekend.url}") #{theWeekend.title}]
p WHEN: #{theWeekend.selectedDate}
它应该有用。
答案 1 :(得分:1)
什么阵列?我只能看到一个对象。你正在循环一个对象。对于对象中的每个键,您都可以使用锚点和段落打印出一个div。由于您的对象包含五个键,因此您将获得五个div。
这就是为什么当你写result.key
时它没有给你什么,因为那不存在。在那种情况下result[1]
会给你网址。当你写theWeekend.key
时,它每次都会给你相同的文字。
如果您只有一个物体,则不需要循环。你应该写:
.scroll
div.title
#[a(target="_blank" href="#{theWeekend.url}") #{theWeekend.title}]
p WHEN: #{theWeekend.selectedDate}