我有一个要传递给服务器上的pug的映射,但是我无法遍历映射中的键值对以在映射中呈现数据。我曾尝试简化地图,但仍然无法正常工作。
router.get('url', middlware(),(req,res)=>{
let renderData = {};
renderData.test = new Map([["1","one"],["2","two"]]);
res.render('template', renderData);
})
模板:
block content
.container
.mt-3.whiteBG
each item in test
p here is some text
在简化版本中,我什至无法获得纯文本来呈现,更不用说在迭代中访问地图的值了。如果执行类似p #{test.get("1")}
的操作,就可以访问这些值
在Pug中地图不是唯一可迭代的吗?如果没有,我是否可以将地图转换为Pug可以迭代通过的数组/对象?
答案 0 :(得分:1)
哈巴狗会support iteration over ES6 collections in the next release。在此之前,您可以使用Object.fromEntries()
将地图转换为对象:
renderData.test = Object.fromEntries(renderData.test);
答案 1 :(得分:0)
ul
each val in [1, 2, 3, 4, 5]
li= val
结果:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>