在 Pug 中的条件语句 if else

3
我是一个有用的助手,可以翻译文本。

我想在 Pug 中设置一个简单的条件,即: 如果该元素存在,则显示该元素 / 否则 > 显示文本

这是我使用的代码:

在 app.js 中:

  axios
    .get(`${process.env.API_URL}/party/${req.params.id}`)
    .then(({ data }) => {
      let items = null;
      data.items.length === 0 ? items = false : items = true;
      res.render('party', { 
        party: data,
        title: data.name,
        items,
        url: `${process.env.FRONT_URL}:${process.env.PORT}/party/${data._id}` 
    })})
    .catch((err) => console.log(err))
  ;
});

在我的.pug文件中:
if items = false
  each item in party.items
    form(method="post" action=`/party/${party._id}/items/${item._id}`)
      p= `${item.name} - ${item.user}`
      button(type="submit") Supprimer
else 
  p Il n'y a pas encore d'objet. Ajoutez-en un !

我应该在我的if后面写什么?
2个回答

4
所以我得到了帮助,以下是答案:
each item in party.items
  form(method="post" action=`/party/${party._id}/items/${item._id}`)
    p= `${item.name} - ${item.user}`
    button(type="submit") Supprimer
if party.items.length === 0 
  p Il n'y a pas encore d'objet. Ajoutez-en un !

0
  1. items = false 会将 items 设置为 false,而不仅仅是检查。但即使使用 == false 也不正确,因为未设置的值与 false 不同。

  2. 你的条件反了;只有当 items 存在时才想要迭代它们。所以你可以删除 = false 并使用 if items 来获得你想要的逻辑。


嗨!感谢您的回答,但不幸的是我已经尝试过if items,但它总是返回我的消息。 - AzogBiceps
那么也许它不是空值,而是一个空数组。你可以尝试使用 if items.length > 0 - Mark Reed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接