簡體   English   中英

如何在哈巴狗中迭代 map

[英]How to iterate over a map in pug

我有一個 map,我將它傳遞給我的服務器上的 pug,但我無法迭代 map 中的鍵值對,以便在 map 中呈現數據。 我已經嘗試簡化 map 但仍然無法使其工作。

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

在簡化版本中,我什至無法獲得要呈現的純文本,更不用說在迭代中訪問 map 的值了。 如果我做這樣的事情,我可以訪問這些值p #{test.get("1")}地圖在 Pug 中是否不可迭代? 如果沒有,我有辦法將我的 map 轉換為 Pug 可以迭代的數組/對象嗎?

Pug 將在下一個版本中支持對 ES6 collections 的迭代 在此之前,您可以使用Object.fromEntries()將 Map 轉換為 object :

renderData.test = Object.fromEntries(renderData.test);
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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM