如何使用JADE迭代获得键和索引?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

如此处所述:http : //jade-lang.com/reference/,获取索引或密钥很容易。但是有两种方法可以兼顾吗? 这个:

ul
  each val, index in {"day": "Wed", "link": "url", "message": "three"}
    li#item-= index + ': ' + val

输出这个:

<ul>
  <li id="item-">day: Wed</li>
  <li id="item-">link: url</li>
  <li id="item-">message: three</li>
</ul>

但我想要这样:

<ul>
  <li id="item-0">day: Wed</li>
  <li id="item-1">link: url</li>
  <li id="item-2">message: three</li>
</ul>
提问于
用户回答回答于

我认为只有在遍历数组时才能得到索引,因此JUDER文档与其示例有点混淆。我会给你三个选择来完成这个任务。

选项1:保留原始输入并构建自己的索引

ul
  -var index = 0
  each val, key in {day: "Wed", link: "url", message: "three"}
    li(id="item-#{index++}") #{key}: #{val}

选项2:将输入更改为数组

ul
  each val, index in [["day", "Wed"], ["link", "url"], ["message", "three"]]
    li(id="item-#{index}") #{val[0]}: #{val[1]}

选项3:将输入更改为对象数组

ul
  each val, index in [{day: "Wed"}, {link: "url"}, {message: "three"}]
    li(id="item-#{index}") #{Object.keys(val)[0]}: #{val[Object.keys(val)[0]]}

第一个选择可能是你想要的,但其他的可能是有趣的阅读。

用户回答回答于

只是为了补充这个已经回答的问题,我无法使用PyJade可靠地工作。我无法找到将此提示引用给我的页面,但它对我来说非常合适。

将此添加到你的__init__.py文件中,以将该enumerate功能添加到pyjade环境中。

app.jinja_env.globals.update(enumerate=enumerate)

然后,你可以像使用其他pythonic枚举循环一样在模板中使用它:

for idx, val in enumerate(list_of_whatevs)
    {{ idx }}, {{ val }}

扫码关注云+社区