首页 > 解决方案 > 如何在 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 可以迭代的数组/对象吗?

标签: javascriptnode.jspug

解决方案


Pug 将在下一个版本中支持对 ES6 集合的迭代。在此之前,您可以使用以下方法将 Map 转换为对象Object.fromEntries()

renderData.test = Object.fromEntries(renderData.test);

推荐阅读