如何在哈巴狗中迭代地图

时间:2019-10-23 04:17:36

标签: javascript node.js pug

我有一个要传递给服务器上的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可以迭代通过的数组/对象?

2 个答案:

答案 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>