迭代 Eleventy / 11ty 中的全局数据子文件夹

问题描述 投票:0回答:1

我正在使用 Eleventy 并在我的全局数据文件夹中创建了子文件夹

yummy
,其中包含以下文件:

\src\_data\yummy\drinks.json
\src\_data\yummy\food.json

当我使用

{{ yummy | dump }}
时,我得到以下输出:

{
  "drinks":[
    {"name":"Milk","price":5},
    {"name":"Water","price":1}
  ],
  "food":[
    {"name":"Pizza","price":4},
    {"name":"Hot dog","price":2},
    {"name":"Sallad","price":1},
    {"name":"Avocado","price":3}
  ]
}

我想创建一个包含两个 json 文件中所有条目的列表。我几乎通过以下循环实现了这一目标:

<ul>
{% for key, val in yummy %}
<li>{{ val[0].name }} cost {{ val[0].price }}$</li>
{% endfor %}
</ul>

但是,由于我使用 [0],输出只是每个 json 文件中的第一个条目:

- Milk cost 5$
- Pizza cost 4$

我想要所有条目并已尝试以下操作,但根本没有得到输出:

<ul>
{% for key, val in yummy %}
<li>{{ val[key].name }} cost {{ val[key].price }}$</li>
{% endfor %}
</ul>
json static-site nunjucks eleventy
1个回答
2
投票

我自己通过添加第二个循环来解决这个问题。

<ul>
  {% for key, val in yummy %}
    {% for entry in val %}
    <li>{{ entry.name }} cost {{ entry.price }}$</li>
    {% endfor %}
  {% endfor %}
</ul>

输出为:

- Milk cost 5$
- Water cost 1$
- Pizza cost 4$
- Hot dog cost 2$
- Sallad cost 1$
- Avocado cost 3$
© www.soinside.com 2019 - 2024. All rights reserved.